TRUNCATE
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION
NOM
truncate, ftruncate - Tronquer un fichier à une longueur donnée.
SYNOPSIS
#include <unistd.h>
#include <sys/types.h>
int truncate(const char *path, off_t length);
int ftruncate(int fd, off_t length);
DESCRIPTION
Les appels
truncate
et
ftruncate
tronquent 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, il est étendu, et
la portion supplémentaire est remplie de zéros.
Le pointeur de position n'est pas modifié.
Si la taille est modifiée, les champs ctime et mtime du fichier sont
mis à jour, et les bits Set-UID et Set-GID sont effacés.
Avec
ftruncate,
le fichier doit être ouvert en écriture ; avec
il doit être accessible 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:
- EACCES
-
Le fichier n'est pas accessible en écriture, ou un élément du chemin
d'accès ne permet pas le parcours.
- EFAULT
-
Path
pointe en dehors de l'espace d'adressage accessible.
- EFBIG
-
L'argument
length
dépasse la taille maximum d'un fichier.
- EINTR
-
Un signal a été capturé durant l'exécution.
- EINVAL
-
L'argument
length
est négatif ou plus grand que la taille maximale d'un fichier.
- EIO
-
Une erreur d'entrée/sortie bas niveau s'est produite.
- EISDIR
-
Le fichier est en réalité un répertoire
- ELOOP
-
Le chemin contient une référence circulaire (à travers un lien symbolique)
- 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
- ENOTDIR
-
un composant du chemin d'accès n'est pas 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.
Pour
ftruncate
les mêmes erreurs sont possibles, sauf qu'au lieu des problèmes avec
path,
on peut en avoir avec
fd :
- EBADF
-
L'argument
fd
n'est pas un descripteur valide.
- EBADF ou EINVAL
-
L'argument
fd
n'est pas ouvert en écriture.
- EINVAL
-
L'argument
fd
n'est pas un descripteur de fichier normal.
CONFORMITÉ
BSD 4.4, SVr4 (cette fonction est apparue dans BSD 4.2).
POSIX 1003.1-1996 décrit
ftruncate.
POSIX 1003.1-2001 décrit aussi
truncate,
en tant qu'extension XSI.
SVr4 mentionne des conditions d'erreurs supplémentaires pour
truncate
EMFILE, EMULTIHOP, ENFILE, ENOLINK. La version SVr4 de
ftruncate
dispose de l'erreur supplémentaire EAGAIN.
NOTES
La description ci-dessus est celle des systèmes compatibles XSI.
Pour les systèmes non compatiables,le standard POSIX autorise
deux comportements pour
ftruncate
quand
length
dépasse la longueur du fichier
(notez que
truncate
n'est pas du tout spécifié dans un tel environnement) :
soit renvoyer une erreur, soit étendre le fichier.
(La plupart des Unix suivent le comportement XSI).
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|