WikiDer > Читать (системный вызов)

Read (system call)

В современном POSIX послушный операционные системы, программа, которой требуется доступ к данным из файл хранится в файловая система использует читать системный вызов. Файл обозначен значком дескриптор файла который обычно получается из предыдущего вызова открыто. Этот системный вызов считывает данные в байты, номер которого указывается вызывающей стороной из файла и затем сохраняется в буфере, предоставленном вызывающим процессом.

Системный вызов чтения принимает три аргумента:

  1. Файловый дескриптор файла.
  2. буфер, в котором будут храниться считанные данные и
  3. количество байтов, которые нужно прочитать из файла.

Использование POSIX

Интерфейс системного вызова чтения стандартизирован спецификацией POSIX. Данные из файла считываются путем вызова функции чтения:

ssize_t читать(int fd, пустота *бух, size_t считать);

Возвращаемое значение - это количество прочитанных байтов (ноль означает конец файла), и позиция файла увеличивается на это число. Не считается ошибкой, если это число меньше количества запрошенных байтов; это может произойти, например, потому что на самом деле сейчас доступно меньше байтов (возможно, потому, что мы были близки к концу файла, или потому что мы читаем из трубка, или из Терминал), или потому что системный вызов был прерван сигнал.

В качестве альтернативы -1 возвращается при возникновении ошибки, в таком случае errno устанавливается соответствующим образом, и далее не указывается, изменяется ли позиция файла (если есть).

Смотрите также

Рекомендации

внешняя ссылка