TRUNCATE(2)

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

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

DESCRIPTION
Les appels truncate() et ftruncate() tronquent le fichier 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 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 peuvent être effacés.

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

VALEUR RENVOYÉE
Ces appels système 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. (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 s'est produite lors de la mise à jour de l'in