Provided by: manpages-es_1.55-10_all bug

NOMBRE

       truncate, ftruncate - trunca un fichero a una longitud especificada

SINOPSIS

       #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.

OBSERVACIONES

       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.)

VÉASE TAMBIÉN

       open(2)