我不知道我是如何错误地创建这个文件的

I cannot figure out how I created this file wrong

我一直无法读取我使用 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- --- ---

根据 specification:

creat(path, mode)

等同于

open(path, O_WRONLY|O_CREAT|O_TRUNC, mode)

请注意,标志包含 O_WRONLY,而不是 O_RDWR。这意味着您只能写入文件描述符,而不能从中读取。

如果您想读写,请改用 open(),并使用适当的标志。

XXXfid = open("XXX", O_RDWR | O_CREAT | O_TRUNC, 0600);