truncate   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 26 juillet 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
truncate, ftruncate - Tronquer un fichier à une longueur donnée  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <unistd.h>
#include <sys/types.h>

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

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

getdtablesize() : _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 d'octets nuls.

Le pointeur de position n'est pas modifié.

Si la taille est modifiée, les champs st_ctime et st_mtime (respectivement horodatage du dernier changement d'état et horodatage de la dernière modification ; voir stat(2)) 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 truncate(), il doit être accessible en écriture.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
truncate() et ftruncate() renvoient 0 s'ils réussissent et -1 s'ils échouent, auquel cas errno contient le code d'erreur.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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. (Voir aussi path_resolution(7).)
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.
EPERM
Le système de fichiers sous-jacent ne supporte pas l'extension d'un fichier au-delà de sa taille actuelle.
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É   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
BSD 4.4, SVr4, POSIX.1-2001 (cette fonction est apparue dans BSD 4.2).  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
La description ci-dessus est celle des systèmes compatibles XSI. Pour les systèmes non compatibles, 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ée dans un tel environnement) : soit renvoyer une erreur, soit étendre le fichier. (La plupart des Unix suivent le comportement XSI). Comme la plupart des implémentations Unix, Linux suit les réclamations XSI lorsqu'il a à faire à des systèmes de fichiers natifs. Toutefois, certains systèmes de fichiers non natifs ne permettent pas d'utiliser truncate() et ftruncate() pour étendre un fichier au-delà de sa taille actuelle : un exemple notable sous Linux est VFAT.  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
open(2), stat(2), path_resolution(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 22 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 truncate ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EACCESERREURS
EBADFERREURS
EBADF ou EINVALERREURS
EFAULTERREURS
EFBIGERREURS
EINTRERREURS
EINVALERREURS
EIOERREURS
EISDIRERREURS
ELOOPERREURS
ENAMETOOLONGERREURS
ENOENTERREURS
ENOTDIRERREURS
EPERMERREURS
EROFSERREURS
ETXTBSYERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:51:43, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional