Other Alias
ftruncateSINOPSIS
#include <unistd.h>#include <sys/types.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
DESCRIPCIÓN
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.
VALOR DEVUELTO
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y se establece el errno apropiado.ERRORES
Para truncate:- EACCES
- Se deniega el permiso de búsqueda para un componente del prefijo de la ruta, o el fichero nombrado no puede ser escrito por el usuario.
- EFAULT
- Path apunta fuera del espacio de direcciones asignado al proceso.
- EFBIG
- El argumento length es mayor que el tamaño máximo de fichero. (XSI)
- EINTR
- Se capturó una señal durante la ejecución.
- EINVAL
- El argumento length es negativo o mayor que el tamaño máximo de fichero.
- EIO
- Ocurrió un error de E/S mientras se actualizaba el nodo-i.
- EISDIR
- El fichero nombrado es un directorio.
- ELOOP
- Demasiados enlaces simbólicos en la traducción del nombre de ruta.
- ENAMETOOLONG
- Un componente de la ruta excede los 255 caracteres, o la ruta completa excede los 1023 caracteres.
- ENOENT
- El fichero no existe.
- EROFS
- El fichero reside en un sistema de ficheros de sólo lectura.
- ETXTBSY
- El fichero es un fichero de procedimientos puros (código compartido) que se está ejecutando.
Para ftruncate se aplican los mismos errores, pero en lugar de tratar con path, los errores pueden ocurrir ahora con fd:
- EBADF
- fd no es un descriptor válido.
- EBADF o EINVAL
- fd no está abierto para escritura.
- EINVAL
- fd no hace referencia a un fichero regular.
CONFORME A
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.