Provided by: manpages-es_1.55-9_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)