这样的代码:
#include <iostream>
using namespace std;
int main(){
FILE* to = NULL;
to = fopen("cpp", "wb");
if(to != NULL)
cout << 1 << endl ;
cout << 2 << endl;
}
使用选项g++
编译-o
,然后运行。返回“2”。要查看带有ls -al
的cpp文件夹:drwxr-xr-x 2 anyone staff 64 6 8 08:31 cpp
为什么它返回“2”。为什么我无法打开文件夹进行写入?
答案 0 :(得分:1)
fopen用于打开文件而不是文件夹,你确定cpp是文件夹还是你做错了?
答案 1 :(得分:0)
这是因为您尝试打开文件夹进行编写。根据{{3}},您会收到[EISDIR]
错误:
[EISDIR]
命名文件是目录,模式需要写访问权。
您可以通过打印strerror(errno))
来确定错误:
cout << strerror(errno)) << endl;