pread(2) System Calls Manual pread(2) NOMBRE pread, pwrite - leen o escriben en una determinada posicion de un descriptor de archivo BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #include ssize_t pread(size_t count; int fd, void buf[count], size_t count, off_t offset); ssize_t pwrite(size_t count; int fd, const void buf[count], size_t count, off_t offset); Requisitos de Macros de Prueba de Caracteristicas para glibc (vease feature_test_macros(7)): pread(), pwrite(): _XOPEN_SOURCE >= 500 || /* Desde glibc 2.12: */ _POSIX_C_SOURCE >= 200809L DESCRIPCION pread() lee hasta count bytes del descriptor de fichero fd a partir de la posicion offset (desde el principio del fichero) en el area temporal que empieza en buf. La posicion 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 posicion offset. La posicion del puntero del fichero no cambia. Debe ser posible realizar busquedas sobre el fichero referenciado por fd. VALOR DEVUELTO En caso de exito, pread() devuelve el numero de bytes leidos (un valor de cero nos indicara el final del archivo) y pwrite() devuelve el numero de bytes escritos. No es un error que una llamada exitosa transfiera menos bytes de los solicitados (veanse read(2) y write(2)). En caso de error se devuelve -1, y errno se define con el valor correspondiente. 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). ESTANDARES POSIX.1-2024. HISTORIAL POSIX.1-2001. Anadido en Linux 2.1.60; las entradas en la tabla de llamadas al sistema i386 se anadieron en Linux 2.1.69. La compatibilidad con la biblioteca C (incluida la emulacion mediante lseek(2) en nucleos antiguos sin las llamadas al sistema) se anadio en glibc 2.1. Diferencias nucleo / biblioteca C En Linux, las llamadas al sistema subyacentes se renombraron en Linux 2.6: pread() paso a ser pread64() y pwrite() a ser pwrite64(). Los numeros de las llamadas al sistema se mantuvieron sin cambios. Las funciones contenedoras pread() y pwrite() de glibc gestionan el cambio de forma transparente. En algunas arquitecturas de 32 bits, la firma de llamada para estas llamadas al sistema difiere. El motivo ha sido descrit en syscall(2). NOTAS Las llamadas al sistema pread() y pwrite() son especialmente utiles en aplicaciones multihilo. Permiten que varios hilos realicen operaciones de E/S en el mismo descriptor de archivo sin verse afectados por los cambios en el archivo desplazado por otros hilos. ERRORES POSIX requiere que, al abrir un archivo con el indicador O_APPEND, no se afecte la ubicacion donde pwrite() escribe los datos. Sin embargo, en Linux, si se abre un archivo con O_APPEND, pwrite() agregara datos al final del archivo, independientemente del valor de offset. VEASE TAMBIEN lseek(2), read(2), readv(2), write(2) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Juan Piernas y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Linux man-pages 6.18 8 Febrero 2026 pread(2)