truncate

TRUNCATE(2)             Manual del programador de Linux            TRUNCATE(2)



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)



Linux                          21 diciembre 1998                   TRUNCATE(2)