Linux

CentOS 4.8

truncate(2)


TRUNCATE

NOM

truncate, ftruncate − Tronquer un fichier à une longueur donnée.

SYNOPSIS

#include <unistd.h>

int truncate(const char *path, off_t length);
int ftruncate(int
fd, off_t length);

DESCRIPTION

Truncate tronque le fichier référencé par path ou par le descripteur fd à une longueur maximale de length octets.

Si le fichier était plus long, les données supplémentaires sont perdues. Si le fichier était plus court, on ne sait pas s’il est laissé intact, ou s’il est étendu (mais il est étendu sur les systèmes conformes XSI). Dans ce dernier cas, la portion supplémentaire est remplie de zéros. Avec ftruncate, le fichier doit être ouvert en écriture.

VALEUR RENVOYÃE

truncate, et ftruncate renvoient 0 s’ils réussissent et −1 s’ils échouent, auquel cas errno contient le code d’erreur.

ERREURS

Pour truncate:

ENOTDIR

un composant du chemin d’accès n’est pas un répertoire

ENAMETOOLONG

Un composant du chemin dépasse 255 caractères ou le chemin complet dépasse 1023 caractères.

ENOENT

Le fichier n’existe pas

EACCES

Un composant du chemin d’accès ne permet pas le parcours

EACCES

Le fichier n’est pas accessible en écriture.

ELOOP

Le chemin contient une référence circulaire (à travers un lien symbolique)

EISDIR

Le fichier est en réalité un répertoire

EROFS

Le fichier se trouve sur un système de fichiers en lecture seule.

ETXTBSY

Le fichier est un programme actuellement en cours d’exécution.

EIO

Une erreur d’entrée/sortie s’est produite pendant la mise à jour.

EFAULT

Path pointe en dehors de l’espace d’adressage accessible.

Pour ftruncate:

EBADF

fd n’est pas un descripteur valide.

EINVAL

fd est une socket, pas un fichier.

EINVAL

fd n’est pas ouvert en écriture.

CONFORMITÃ

BSD 4.4, SVr4 (cette fonction est apparue dans BSD 4.2). SVr4 mentionne des conditions d’erreurs supplémentaires pour truncate EINTR, EMFILE, EMULTIHOP, ENAMETOOLONG, ENFILE, ENOLINK, ENOTDIR. La version SVr4 de ftruncate dispose des conditions d’erreur supplémentaires EAGAIN et EINTR. POSIX dispose de ftruncate mais pas de truncate.

Le standard Posix ne précise pas ce qui se passe si le fichier contient moins de length octets.

BOGUES

Ces appels devraient être généralisés pour permettre la suppression d’une zone quelconque d’un fichier.

VOIR AUSSI

open(2)

TRADUCTION

Christophe Blaess, 1997.


truncate(2)