ИМЯ¶
pread, pwrite - читает из
файлового
дескриптора
или пишет в
него по
заданному
смещению
ОБЗОР¶
#define _XOPEN_SOURCE 500
#include <unistd.h>
ssize_t pread(int fd, void *buf, size_t
count, off_t offset);
ssize_t pwrite(int fd, const void *buf, size_t
count, off_t offset);
ОПИСАНИЕ¶
pread() читает
count
байт из
файлового
дексриптора
fd по
смещению
offset
(от начала
файла) в
буфер
buf.
Позиция
смещения в
файле при
этом не
изменяется.
pwrite() пишет
count
байт из
буфера
buf в
файловый
дескриптор
fd по
смещению
offset.
Позиция
смещения в
файле при
этом не
изменяется.
Файл, на
который
указывает
дескриптор
fd должен
поддерживать
позиционирование.
ВОЗВРАЩАЕМОЕ
ЗНАЧЕНИЕ¶
В случае
успеха,
возвращается
количество
прочитанных
или
записанных
байт (ноль
говорит о
том, что
ничего не
было
записано в
случае
pwrite или
что
достигнут
конец файла
в случае
pread),
или -1 в случае
ошибки, при
этом
значение
errno
содержит
ошибку.
ОШИБКИ¶
pread может
вернуть
ошибку и
установить
errno в любое
значение из
тех, что
устанавливаются
для
read(2) или
lseek(2).
pwrite может
вернуть
ошибку и
установить
errno в любое
значение из
тех, что
устанавливаются
для
write(2) или
lseek(2).
СООТВЕТСТВИЕ
СТАНДАРТАМ¶
Unix98
ИСТОРИЯ¶
Системные
вызовы
pread и
pwrite
были
добавлен в Linux
начиная с
версии 2.1.60;
записи в
таблице
системных
вызовов для i386
были
добавлены в
2.1.69. Поддержка libc
(включая
эмуляцию на
старых
ядрах, без
этих
системных
вызовов)
была
добавлена в glibc
2.1.
СМОТРИ
ТАКЖЕ¶
read(2),
write(2),
lseek(2)
ПЕРЕВОД¶
Перевёл с
английского
Виктор
Вислобоков
<corochoone@perm.ru> 2004