【发布时间】:2021-01-30 00:15:14
【问题描述】:
我正在尝试在 Windows 上使用 ubuntu 打开我创建的名为“inputs.txt”的文件。在 Linux 手册中,我发现 O_DIRECTORY 标志用于同一目录中的文件,如果它们不在该目录中,则会失败。我使用了这个标志并将“inputs.txt”文件保存在与我的 .c 文件相同的文件夹中。任何想法为什么它无法打开?
int main(){
int fd;
fd = open("inputs.txt", O_DIRECTORY);
if (fd == -1){
printf("Failed");
exit(1);
}
return 0;
}
【问题讨论】:
-
我相信您误读了手册。这是我的 Ubuntu 20.04 上的内容:“O_DIRECTORY 如果路径名不是目录,则会导致打开失败。”因此,如果“inputs.txt”不是目录,open() 将失败。我假设,“inputs.txt”是一个常规文件,在当前目录中所以,按照@mhawke 的建议去做。
-
printf("Failed because %s\n", strerror(errno));