【发布时间】:2020-09-10 23:40:53
【问题描述】:
我在读取我用 creat 系统调用在 c 中创建的文件时遇到问题。代码如下:
XXXfid = creat ("XXX", 384);
if (XXXfid<0) {printf("Error with creat"); return 0;}
writeStatus = write (XXXfid, "limp", 4);
if (writeStatus<0) {printf("error with write"); return 0;}
lseek(XXXfid, 0, 0);
readStatus = read(XXXfid, buffer, 120);
if (readStatus<0) {printf("error with read2"); return 0;}
所有其他命令都运行良好,无论我尝试什么(即关闭和重新打开等),我都无法读取文件。我有读写权限,是否需要给所有人读写权限?考虑到我得到的错误是 9- Bad File Descriptor,我不会这么认为。我完全不知所措,任何帮助将不胜感激 我相信八进制表示法我的许可是 600。如果有帮助,这是二进制的 110 000 000,我的 ls -l 确认这是 -rw- --- ---
【问题讨论】:
-
除了没有
creat()调用之外,这不是你之前发布的同一个问题吗? -
如果你没有权限,
creat()会失败。 -
请使用八进制权限。很少有程序员能一眼看出
384是什么权限。 -
creat以只写方式打开文件。 -
报告错误时,包括
errno和/或strerror(errno)的输出,可能使用perror()。