写入和读取文件的系统调用

system call to write and read from a file

我想测试readwrite

的系统调用
#include <unistd.h>
#include <fcntl.h>

int main(void)
{
    fd = open("/Users/me/Desktop/PubRepo/C/APUE/3.File_IO/test", O_RDWR);
    write(fd, "Test the first line",20);
}

抄送报告:

In [29]: !cc write_test.c                                                                                         
write_test.c:6:5: error: use of undeclared identifier 'fd'
    fd = open("/Users/me/Desktop/PubRepo/C/APUE/3.File_IO/test", O_RDWR);
    ^
write_test.c:7:11: error: use of undeclared identifier 'fd'
    write(fd, "Test the first line",20)
          ^
2 errors generated.

我有一些 python 基础知识,但不知道如何完成代码。

您需要声明 fd 是什么类型。那是什么类型的?检查 open() 的参考文献,其中提到:

int open(const char *path, int oflag, ... );

可以看到return类型是int。因此,应分配给该函数 return 值的变量也应属于同一类型。

所以改变:

fd = open("/Users/me/Desktop/PubRepo/C/APUE/3.File_IO/test", O_RDWR);

对此:

int fd = open("/Users/me/Desktop/PubRepo/C/APUE/3.File_IO/test", O_RDWR);

PS:如果文件不存在,那么你需要做:

int fd = open("/Users/me/Desktop/PubRepo/C/APUE/3.File_IO/test", O_RDWR | O_CREAT, 0600);

阅读更多内容。