Man page - truncate(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

truncate

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
VERSIONS
STANDARDS
HISTORIQUE
NOTES
BOGUES
VOIR AUSSI
TRADUCTION

NOM

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

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <unistd.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 (consulter feature_test_macros (7)) :

truncate () :
_XOPEN_SOURCE >= 500
|| /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200809L
|| /* glibc <= 2.19 : */ _BSD_SOURCE

ftruncate () :
_XOPEN_SOURCE >= 500
|| /* Depuis la glibc 2.3.5 : */ _POSIX_C_SOURCE >= 200112L
|| /* glibc <= 2.19 : */ _BSD_SOURCE

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 avec des octets NULL (« \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 heure de derniĂšre modification ; consultez inode (7)) 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 succĂšs, zĂ©ro est renvoyĂ©. En cas d’erreur, -1 est renvoyĂ© et errno est dĂ©finie pour prĂ©ciser l’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. (Consultez aussi path_resolution (7).)

EFAULT

L’argument Path pointe en dehors de l’espace d’adressage allouĂ© au processus.

EFBIG

L’argument length dĂ©passe la taille maximale d’un fichier (XSI).

EINTR

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

EINVAL

L’argument length est nĂ©gatif ou plus grand que la taille maximale d’un fichier.

EIO

Une erreur d’entrĂ©e-sortie s’est produite lors de la mise Ă  jour de l’inode.

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.

EPERM

La lecture a été interrompue par un signal ; consultez fnctl (2).

EROFS

Le fichier indiqué réside sur un systÚme de fichiers en lecture seule.

ETXTBSY

Le fichier est un fichier exĂ©cutable 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 de fichier valable.

EBADF ou EINVAL

fd n’est pas ouvert en Ă©criture.

EINVAL

fd n’est pas un descripteur de fichier ordinaire ni un objet de mĂ©moire partagĂ© POSIX.

EINVAL ou EBADF

Le descripteur de fichier fd n’est pas ouvert en Ă©criture. POSIX permet l’une ou l’autre erreur dans ce cas, et les applications portables devraient les gĂ©rer. (Linux produit EINVAL .)

VERSIONS

Les dĂ©tails dans la section DESCRIPTION sont ceux de systĂšmes compatibles XSI. Pour les systĂšmes non compatibles, la norme 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 implĂ©mentations d’UNIX, suit les exigences de 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.

Sur certaines architectures 32 bits, la signature d’appel de ces appels systĂšme est diffĂ©rente, pour les raisons expliquĂ©es dans syscall (2).

STANDARDS

POSIX.1-2008.

HISTORIQUE

POSIX.1-2001, 4.4BSD, SVr4 (ces appels systĂšme sont apparus dans 4.2BSD).

Les appels systĂšme truncate () et ftruncate () originaux de Linux n’ont pas Ă©tĂ© conçus pour gĂ©rer les positions dans des gros fichiers. En consĂ©quence, Linux 2.4 a ajoutĂ© les appels systĂšme truncate64 () et ftruncate64 () qui permettent de gĂ©rer de gros fichiers. Cependant, ces dĂ©tails peuvent ĂȘtre ignorĂ©s par les applications qui utilisent la glibc, dont les fonctions d’enveloppe emploient de maniĂšre transparente les appels systĂšme les plus rĂ©cents disponibles.

NOTES

ftruncate () peut aussi ĂȘtre utilisĂ© pour rĂ©gler la taille d’un objet de mĂ©moire partagĂ© POSIX ; consultez shm_open (3).

BOGUES

Un bogue dans les en-tĂȘtes de la glibc 2.12 fait que la valeur minimale de _POSIX_C_SOURCE requise pour exposer la dĂ©claration ftruncate () Ă©tait 200809L au lieu de 200112L. Ce bogue a Ă©tĂ© corrigĂ© dans les versions ultĂ©rieures de la glibc.

VOIR AUSSI

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

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .