无法打开文件C



对于下面的代码片段,我得到一个错误:

Unable to open file: No such file or directory

redirect_ptr是char**我试过打印redirect_ptr[0],它正确打印它。你知道问题出在哪里吗?

if ((in_fd = open(redirect_ptr[0], O_RDWR | O_CREAT)) == -1) {
   perror("Unable to open file");
   return -1;
}

创建文件时,open()需要一个额外的参数,即要创建的文件的权限位。例如:

if ((in_fd = open(redirect_ptr[0], O_RDWR | O_CREAT, 0644) == -1) 

这可能不是你得到错误的原因,但是如果错误是"没有这样的文件或目录",那么这正是问题所在,你的程序找不到文件。

可能你的文件名中有一些不可打印的字符,或者文件名以空格、换行符或类似的字符结尾,或者你拼写错误,或者大小写错误,或者路径是一个相对路径,不匹配基于你的进程当前工作目录的文件。

将文件名打印在一对"中通常很有帮助,这样你就可以看到是否有一些不应该在那里的空白。添加一个

 printf("Filename: '%s'n",redirect_ptr[0]);

到你的代码中。如果它看起来不错,在它打印出来的文件名上执行ls -l命令,位于进程的工作目录下。

相关内容

  • 没有找到相关文章

最新更新