我要测试read
和write
的系统调用
#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基础知识,但不知道如何完成代码。
答案 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中了解更多信息。