TRUNCATE(2) | Manual del programador de Linux | TRUNCATE(2) |
truncate, ftruncate - trunca un fichero a una longitud especificada
#include <unistd.h>
#include <sys/types.h>
int truncate(const char *path, off_t
length);
int ftruncate(int fd, off_t length);
Las funciones truncate y ftruncate hacen que el fichero regular cuyo nombre es path o que es referenciado por fd sea truncado a un tamaño de length bytes.
Si el fichero era previamente más grande que este tamaño, los datos extra se pierden. Si el fichero era previamente más pequeño, es extendido, y la zona ampliada es rellenada con bytes cero.
El puntero del fichero no se modifica.
Si el tamaño cambia, los campos ctime y mtime del fichero son actualizados, y los bits de modo suid y sgid pueden ser limpiados.
Con ftruncate, el fichero debe estar abierto para escritura; con truncate, el fichero debe ser escribible.
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y se establece el errno apropiado.
Para truncate:
Para ftruncate se aplican los mismos errores, pero en lugar de tratar con path, los errores pueden ocurrir ahora con fd:
4.4BSD, SVr4 (estas funciones aparecieron por primera vez en BSD 4.2). POSIX 1003.1-1996 posee ftruncate. POSIX 1003.1-2001 posee también truncate, como una extensión de XSI.
SVr4 documenta para truncate las condiciones de error adicionales EMFILE, EMULTIHP, ENFILE, ENOLINK. SVr4 documenta para ftruncate una condición de error adicional EAGAIN.
La descripción de arriba es para sistemas conformes con XSI. Para sistemas no conformes con XSI, el estándar POSIX permite dos comportamientos para ftruncate cuando length excede la longitud del fichero (observe que truncate no está especificada en absoluto en tales condiciones): bien devolver un error o extender el fichero. (La mayoría de sistemas UNIX siguen el requisito de XSI.)
21 diciembre 1998 | Linux |