0

使用 linux-mint。在这个简单的代码中,我试图写入一个文件名“input.txt”,它与这个脚本在同一个目录中。当我给出相对路径时,即只有“input.txt”作为路径该文件没有写入文件,但是当我给出绝对路径时,程序可以工作,并且“hello world”被写入“input.txt”。我不明白有什么区别

#include <zconf.h>
#include <fcntl.h>
#include <sys/wait.h>
int main() {
    close(1);
    open("/home/maor/CLionProjects/untitled2/input.txt", O_RDWR );
    if (fork() == 0) {
        int fd = dup(1);
        write(fd, "hello ", 6);
    } else {
        wait(0);
        write(1, "world\n ", 6);
    }
}

4

1 回答 1

1

相对路径的基础不是程序所在的目录,而是执行程序的进程的工作目录,通常是用于执行程序的命令行 shell 的工作目录

埃里克的回答解决了这个问题。

于 2020-06-14T10:08:02.480 回答