【发布时间】:2017-10-30 19:17:42
【问题描述】:
此函数无法打开文件。我的参数是否错误或可能导致此问题的原因?
int CreateFile(const char *filename){
char filepath[strlen(filename) + 3];
sprintf(filepath, "./%s", filename);
int fd = open(filepath, O_CREAT, O_APPEND, S_IWGRP);
if(fd == -1) printf("file read failed\n");
return fd;
}
Xcode 仅将“文件读取失败”打印到控制台。我也尝试通过终端运行它,但这也无济于事。
我修复了 NetMage 指出的一个问题:
int CreateFile(const char *filename){
char filepath[strlen(filename) + 3];
sprintf(filepath, "./%s", filename);
int fd = open(filepath, O_CREAT|O_APPEND, S_IWGRP);
if(fd == -1) printf("file read failed\n");
return fd;
}
不幸的是,这并没有解决问题
【问题讨论】:
-
明确一点,您知道它无法打开是因为它正在打印
"file read failed\n",对吧? -
是的,刚刚编辑了。
-
您没有打开文件进行阅读,因此错误消息有点误导......
-
没错,我把那行放在那里并没有想太多,只是想看看它是否被打印出来。对不起
-
perror(filepath)(如果在open失败之后立即调用,因此没有其他函数有机会更改errno)会告诉您调用失败的原因。