pread(2)
leen de o escriben en un fichero a partir de una posición
SINOPSIS
#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);
DESCRIPCIÓN
pread()
lee hasta
count
bytes del descriptor de fichero
fd
a partir de la posición
offset
(desde el principio del fichero) en el área temporal que empieza en
buf.
La posición del puntero de L/E del fichero no cambia.
pwrite()
escribe hasta
count
bytes desde el buffer que empieza en
buf
al descriptor de fichero
fd
a partir de la posición
offset.
La posición del puntero del fichero no cambia.
Debe ser posible realizar búsquedas sobre el fichero referenciado por
fd.
VALOR DEVUELTO
En caso de éxito se devuelve el número de bytes leídos o escritos (un cero
indica que no se ha escrito nada, en el caso de pwrite, o un fin de
fichero, en el caso de pread), o -1 en caso de error, en cuyo caso se
asigna a
errno
un valor que indica el error.
ERRORES
pread
puede fallar y asignar a
errno
cualquier error especificado por
read(2) o
lseek(2).
pwrite
puede fallar y asignar a
errno
cualquier error especificado por
write(2) o
lseek(2).
CONFORME A
Unix98
HISTORIA
Las llamadas al sistema pread y pwrite se añadieron a Linux
en la versión 2.1.60. Las entradas en la tabla de llamadas al sistema de la
arquitectura i386 se añadieron en la versión 2.1.69. El soporte de libc
(incluyendo la emulación en los núcleos anteriores que carecen de estas
llamadas al sistema) se añadió en glibc 2.1.