系统调用以读写文件

时间:2018-11-13 08:53:43

标签: c undeclared-identifier

我要测试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基础知识,但不知道如何完成代码。

1 个答案:

答案 0 :(得分:3)

您需要声明fd是什么类型。那是什么类型检查open()的引用,其中提到:

  

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

您会看到返回类型为int。因此,应为该函数的返回值分配的变量也应具有相同的类型。

所以改变:

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);

Using open() to create a file in C中了解更多信息。