Available in

(1) (2) (3) (7) (2)/de (2)/es (1)/fr (2)/fr (2)/ja (2)/ko (2)/nl (2)/pl (2)/ru (7)/zh_cn (7)/zh_tw

Contents

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);

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

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

DESCRIPTION

Les appels truncate() et ftruncate() tronquent le fichier ordinaire référencé par path ou par le descripteur fd à une longueur d’exactement 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 caractères nuls (« \0 »).

Le pointeur de position n’est pas modifié.

Si la taille est modifiée, les champs st_ctime et st_mtime du fichier (respectivement heure de dernière modification d’état et de dernière modification ; voir stat(2)) sont mis à jour, et les bits Set−UID et Set−GID peuvent être effacés.

Avec ftruncate(), le fichier doit être ouvert en écriture ; avec truncate(), il doit être accessible en écriture.

VALEUR RENVOYÉE

En cas de réussite, zéro est renvoyé, sinon −1 est renvoyé et 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. (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é pendant 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.

EINTR

Alors qu’il était bloqué en attente de fin, l’appel a été interrompu par un gestionnaire de signal ; voir fcntl(2) et signal(7).

EISDIR

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

ELOOP

Trop de liens symboliques ont été rencontrés en parcourant le chemin.

ENAMETOOLONG

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

ENOENT

Le fichier indiqué n’existe pas.

ENOTDIR

Un élément du chemin d’accès n’est pas un répertoire.

EPERM

Le système de fichiers ne permet pas d’agrandir un fichier au−delà de sa taille actuelle.

EROFS

Le fichier spécifié réside 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 le descripteur de fichier fd :

EBADF

fd n’est pas un descripteur valable.

EBADF ou EINVAL

fd n’est pas ouvert en écriture.

EINVAL

fd n’est pas un descripteur de fichier ordinaire.

CONFORMITÉ

BSD 4.4, SVr4, POSIX.1−2001 (ces appels système sont apparus dans BSD4.2).

NOTES

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é dans un tel environnement) : soit renvoyer une erreur, soit étendre le fichier. Linux, comme la plupart des Unix, suit le comportement XSI sur les systèmes de fichiers natifs. Cependant, certains systèmes de fichiers non natifs ne permettent pas l’utilisation de truncate() et ftruncate() pour étendre un fichier au−delà de sa taille actuelle : un exemple notable sous Linux est VFAT.

VOIR AUSSI

open(2), stat(2), path_resolution(7)

COLOPHON

Cette page fait partie de la publication 3.23 du projet man−pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l’adresse http://www.kernel.org/doc/man−pages/.

TRADUCTION

Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/>; entre 1996 et 2003, puis par Alain Portal <aportal AT univ−montp2 DOT fr> jusqu’en 2006, et mise à disposition sur http://manpagesfr.free.fr/.

Les mises à jour et corrections de la version présente dans Debian sont directement gérées par Julien Cristau <jcristau [AT] debian.org> et l’équipe francophone de traduction de Debian.

Veuillez signaler toute erreur de traduction en écrivant à <debian−l10n−french [AT] lists.org> ou par un rapport de bogue sur le paquet manpages−fr.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man −L C <section> <page_de_man> ».

COMMENTS

blog comments powered by Disqus