Man page - pread64(2)

Packages contains this manual

Available languages:

en fr es ja ru ro

Manual

pread

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
СТАНДАРТЫ
ИСТОРИЯ
Отличия между библиотекой C и ядром
ПРИМЕЧАНИЯ
ОШИБКИ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

pread, pwrite - чтение или запись информации из файлового дескриптора согласно заданному смещению

БИБЛИОТЕКА

Стандартная библиотека языка C ( libc , -lc )

ОБЗОР

#include <unistd.h>

ssize_t pread(int fd , void buf [. count ], size_t count ,
off_t
offset );
ssize_t pwrite(int
fd , const void buf [. count ], size_t count ,
off_t
offset );

Требования макроса тестирования свойств для glibc (см. feature_test_macros (7)):

pread (), pwrite ():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

ОПИСАНИЕ

pread () читает максимум count байтов из файлового дескриптора fd , начиная со смещения offset (от начала файла), в буфер, начиная с buf . Текущая позиция файла не изменяется.

pwrite () записывает максимум count байтов из буфера buf в файловый дескриптор fd , начиная со смещения offset . Текущая позиция файла не изменяется.

Файл, заданный в fd , должен позволять изменение смещения.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении pread () возвращается количество считанных байт (ноль указывает на конец файла), а pwrite () — количество записанных байт.

Заметим, что для успешного выполнения не считается ошибкой передача меньшего количества байт чем запрошено (смотрите read (2) и write (2)).

В случае ошибки возвращается -1, а errno устанавливается в значение ошибки.

ОШИБКИ

Вызов pread () может завершиться неудачно и записать в errno один из кодов ошибки, определённых для read (2) или lseek (2). Вызов pwrite () может завершиться неудачно и записать в errno один из кодов ошибки, определённых для write (2) или lseek (2).

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001.

Added in Linux 2.1.60; the entries in the i386 system call table were added in Linux 2.1.69. C library support (including emulation using lseek (2) on older kernels without the system calls) was added in glibc 2.1.

Отличия между библиотекой C и ядром

On Linux, the underlying system calls were renamed in Linux 2.6: pread () became pread64 (), and pwrite () became pwrite64 (). The system call numbers remained the same. The glibc pread () and pwrite () wrapper functions transparently deal with the change.

На некоторых 32-битных архитектурах интерфейс этих системных вызовов отличается от описанного выше по причинам, указанным в syscall (2).

ПРИМЕЧАНИЯ

Системные вызовы pread () и pwrite () особенно полезны в многонитевых приложениях. Они позволяют нескольким нитям выполнять ввод-вывод в один файловый дескриптор не учитывая изменений файлового смещения, сделанного другими нитями.

ОШИБКИ

Согласно POSIX требуется, чтобы открытие файла с флагом O_APPEND не влияло на расположение, по которому pwrite () записывает данные. Однако в Linux, если файл открывается с флагом O_APPEND , pwrite () добавляет данные в конец файла, независимо от значения offset .

СМОТРИТЕ ТАКЖЕ

lseek (2), read (2), readv (2), write (2)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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