WikiDer > Читать (системный вызов)
Эта статья включает Список ссылок, связанное чтение или внешняя ссылка, но его источники остаются неясными, потому что в нем отсутствует встроенные цитаты. (Февраль 2019 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
В современном POSIX послушный операционные системы, программа, которой требуется доступ к данным из файл хранится в файловая система использует читать системный вызов. Файл обозначен значком дескриптор файла который обычно получается из предыдущего вызова открыто. Этот системный вызов считывает данные в байты, номер которого указывается вызывающей стороной из файла и затем сохраняется в буфере, предоставленном вызывающим процессом.
Системный вызов чтения принимает три аргумента:
- Файловый дескриптор файла.
- буфер, в котором будут храниться считанные данные и
- количество байтов, которые нужно прочитать из файла.
Использование POSIX
Интерфейс системного вызова чтения стандартизирован спецификацией POSIX. Данные из файла считываются путем вызова функции чтения:
ssize_t читать(int fd, пустота *бух, size_t считать);
Возвращаемое значение - это количество прочитанных байтов (ноль означает конец файла), и позиция файла увеличивается на это число. Не считается ошибкой, если это число меньше количества запрошенных байтов; это может произойти, например, потому что на самом деле сейчас доступно меньше байтов (возможно, потому, что мы были близки к концу файла, или потому что мы читаем из трубка, или из Терминал), или потому что системный вызов был прерван сигнал.
В качестве альтернативы -1 возвращается при возникновении ошибки, в таком случае errno устанавливается соответствующим образом, и далее не указывается, изменяется ли позиция файла (если есть).
Смотрите также
Рекомендации
внешняя ссылка
- C_Programming / C_Reference / stdio.h / fread в Викиучебнике