【发布时间】:2015-05-16 08:35:04
【问题描述】:
当我尝试打开当前目录中的文件时,open 函数工作正常,但是如果我在 open 函数中将文件的目录及其名称作为参数提及,则会发生找不到文件的错误。另外,当我尝试使用 open 函数打开另一个目录中的文件时,终端会打印出没有这样的文件或目录。我找不到写入文件目录的问题。
现在我在“child1”目录中工作,我想打开“openthis.c”文件。这是我要执行的代码。
#include<fcntl.h>
#include<stdlib.h>
#include<sys/stat.h>
int main(){
int fd;
if((fd = open("/child1/openthis.c", O_RDONLY) < 0){
perror("open");
exit(1);}
return 0;
}
这不起作用,但如果我写
open("openthis.c", O_RDONLY)
而不是
open("/child1/openthis.c", O_RDONLY)
代码运行良好。为什么每次写文件的目录,都找不到文件?
【问题讨论】:
-
ls -l /child1/openthis.c说什么? -
你确定你的文件夹在你机器的根目录下吗?
-
那么你没有一个名为
/child1/openthis.c的文件。故事结束。 -
是的。您需要提供文件的实际路径。
-
请出示您的实际代码。由于括号不平衡,您问题中的代码无法编译。