системный вызов для записи и чтения из файла - PullRequest
0 голосов
/ 13 ноября 2018

Я хочу проверить системный вызов 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);
}

CC сообщает:

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 голосов
/ 13 ноября 2018

Вам необходимо указать тип 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 .

...