zion -  truncate


Nom

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

Résumé

#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 .BT truncate , 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

open (2)

Traduction

Christophe Blaess, 1996-2003.

Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?