int fd=-1;
char *filename = "/home/user/POSIXfunctions/testfiles/testfile.txt";
//Arbitary size for the buffer?? How to optimise.
//Dynamic allocation is a choice but what is the
//right way to relate the file size to bufffer size.
fd=open(filename , O_WRONLY , mode);
if(-1 == fd)
{
perror("Open Failed");
return 1;
}
我从另一个用户那里借用了这个代码,试图理解posix函数,但是当我要求它打开我在顶部指定的文件名时,它给了我这个错误。
Open Failed: No such file or directory
为什么这样做?路径是正确的,没有拼错或任何东西。谁知道问题是什么?我希望能够从root一直提供规范。
编辑:拿出一些不必要的变量
答案 0 :(得分:1)
我复制了你的代码并在我的Linux机器上运行它并且它有效。所以我的猜测是这个文件并不存在。 再次检查此文件是否存在(例如,您说您从路径中省略了实际用户) 关于你的图书馆问题 - 它与图书馆无关。
答案 1 :(得分:0)
我可以想到以下原因导致您的程序无效:
1)文件不存在。如上所述,运行ls -al和你在C程序中给出的绝对路径应该告诉你文件是否存在
2)您无权写入该文件。运行chmod 666 / path / to / file并尝试运行程序。检查权限是否是问题的其他方法是使用sudo来运行程序。