.\" -*- coding: UTF-8 -*- .\" Copyright 1999, Joseph Samuel Myers .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pread 2 "8 февраля 2026 г." "Linux man\-pages 6.18" .SH НАИМЕНОВАНИЕ pread, pwrite \- чтение или запись информации из файлового дескриптора согласно заданному смещению .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fBssize_t pread(\fPsize_t count; \fB int \fP\fIfd\fP\fB, void \fP\fIbuf\fP\fB[\fP\fIcount\fP\fB], size_t \fP\fIcount\fP\fB,\fP \fB off_t \fP\fIoffset\fP\fB);\fP \fBssize_t pwrite(\fPsize_t count; \fB int \fP\fIfd\fP\fB, const void \fP\fIbuf\fP\fB[\fP\fIcount\fP\fB], size_t \fP\fIcount\fP\fB,\fP \fB off_t \fP\fIoffset\fP\fB);\fP .fi .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \fBpread\fP(), \fBpwrite\fP(): .nf _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L .fi .SH ОПИСАНИЕ \fBpread\fP() читает максимум \fIcount\fP байтов из файлового дескриптора \fIfd\fP, начиная со смещения \fIoffset\fP (от начала файла), в буфер, начиная с \fIbuf\fP. Текущая позиция файла не изменяется. .P \fBpwrite\fP() записывает максимум \fIcount\fP байтов из буфера \fIbuf\fP в файловый дескриптор \fIfd\fP , начиная со смещения \fIoffset\fP. Текущая позиция файла не изменяется. .P Файл, заданный в \fIfd\fP, должен позволять изменение смещения. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBpread\fP() возвращается количество считанных байт (ноль указывает на конец файла), а \fBpwrite\fP() — количество записанных байт. .P Заметим, что для успешного выполнения не считается ошибкой передача меньшего количества байт чем запрошено (смотрите \fBread\fP(2) и \fBwrite\fP(2)). .P В случае ошибки возвращается \-1, а \fIerrno\fP устанавливается в значение ошибки. .SH ОШИБКИ Вызов \fBpread\fP() может завершиться неудачно и записать в \fIerrno\fP один из кодов ошибки, определённых для \fBread\fP(2) или \fBlseek\fP(2). Вызов \fBpwrite\fP() может завершиться неудачно и записать в \fIerrno\fP один из кодов ошибки, определённых для \fBwrite\fP(2) или \fBlseek\fP(2). .SH СТАНДАРТЫ POSIX.1\-2024. .SH ИСТОРИЯ POSIX.1\-2001. .P 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 \fBlseek\fP(2) on older kernels without the system calls) was added in glibc 2.1. .SS "Отличия между библиотекой C и ядром" On Linux, the underlying system calls were renamed in Linux 2.6: \fBpread\fP() became \fBpread64\fP(), and \fBpwrite\fP() became \fBpwrite64\fP(). The system call numbers remained the same. The glibc \fBpread\fP() and \fBpwrite\fP() wrapper functions transparently deal with the change. .P На некоторых 32\-битных архитектурах интерфейс этих системных вызовов отличается от описанного выше по причинам, указанным в \fBsyscall\fP(2). .SH ПРИМЕЧАНИЯ Системные вызовы \fBpread\fP() и \fBpwrite\fP() особенно полезны в многонитевых приложениях. Они позволяют нескольким нитям выполнять ввод\-вывод в один файловый дескриптор не учитывая изменений файлового смещения, сделанного другими нитями. .SH "ПРОГРАММНЫЕ ОШИБКИ" .\" FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=43178 Согласно POSIX требуется, чтобы открытие файла с флагом \fBO_APPEND\fP не влияло на расположение, по которому \fBpwrite\fP() записывает данные. Однако в Linux, если файл открывается с флагом \fBO_APPEND\fP, \fBpwrite\fP() добавляет данные в конец файла, независимо от значения \fIoffset\fP. .SH "СМОТРИТЕ ТАКЖЕ" \fBlseek\fP(2), \fBread\fP(2), \fBreadv\fP(2), \fBwrite\fP(2) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov , kogamatranslator49 , Darima Kogan , Max Is , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT debian-l10n-russian@lists.debian.org списка рассылки русских переводчиков .ME .