C++:文件打开调用失败

标签 c++ linux

我的一个库函数中有以下代码,我在循环中多次调用该函数。经过大量迭代后,我发现 open 返回 -1,这是不应该的,因为之前的迭代工作正常。可能是什么原因。我怎样才能获得有关错误的更多详细信息?

int mode;
 if (fileLen == 0)
      mode = O_TRUNC | O_RDWR | O_CREAT;
 else
      mode = O_RDWR;
 myFilDes = open (fName, mode, S_IRUSR | S_IWUSR);

编辑:每次迭代结束后,我调用库公开的一个方法,该方法在内部调用 close (myFilDes);

最佳答案

perror 是将 errno 映射到字符串并将其打印到 stderr 的标准函数:

if (myFilDes == -1)
    perror("Unable to open file: ");

man errno/man perror/man strerror 了解更多信息。

关于C++:文件打开调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247221/

相关文章:

c - mmap 一个不太可能被程序的任何其他部分使用的地址

c++ - 通过欧拉角输入旋转四元数

c++ - 重载引用转换

c++ - 如何使指针指向第二个数组中的字符

linux - 一个进程如何在 Linux 上拦截另一个进程的 stdout 和 stderr?

c - linux内核中潜在的内存泄漏?

c++ - 终端不断缓冲按下的键

c++ - 在 C++ 中,如何声明指向类中方法的函数指针?

linux - 一个 bash shell 程序,等待列表中的所有服务器启动,然后运行启动脚本

linux - 读取 USB UPS 状态的 Bash 脚本