【发布时间】:2020-10-03 20:05:03
【问题描述】:
使用 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);
}
}
【问题讨论】:
-
相对路径的基础不是程序所在的目录,而是执行程序的进程的工作目录,通常是用于执行程序的命令行shell的工作目录,
-
相对于.......什么的路径?某些“当前目录”可能在您认为的位置,也可能不在?