没有这样的文件或目录打开syscall错误

时间:2016-10-20 13:46:35

标签: c linux system-calls

我创建了一个文件夹" progfiles"在桌面上,然后创建一个名为" newfile.txt"的空文档。在里面。之后我编写了一个程序来打开并读取写入newfile.txt,但是在检查errno时出现运行错误它给出了错误"没有这样的文件或目录",我的程序部分是:

  fdr = open("Desktop/progfiles/newfile.txt",O_RDONLY,0666);

  if(fdr == -1)
  {
      printf("Error:Failed to open\n");
      perror("open:");
  }

为什么?我犯了什么错误。

2 个答案:

答案 0 :(得分:1)

您需要包含完整的文件路径或open()

的相对路径
int fdr=open("/home/<User>/Desktop/progfiles/newfile.txt",O_RDONLY,0666);

答案 1 :(得分:0)

如前所述,您需要包含完整的文件路径或确保您的可执行文件位于文件位置的正确文件夹中,如果您提供给open()的路径,请参阅示例是"Desktop/progfiles/newfile.txt"您要确保您的可执行文件位于Desktop的父文件夹中。