Системный вызов для записи и чтения из файла
Я хочу проверить системный вызов 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, но я не знаю, как сделать код.
1 ответ
Решение
Вы должны объявить, какой тип 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);
Подробнее читайте в разделе Использование open() для создания файла в C.