Linux |
CentOS 4.8 |
|
ftruncate(2) |
truncate, ftruncate − Tronquer un fichier à une longueur donnée. |
#include <unistd.h> int truncate(const char *path, off_t
length); |
Truncate tronque 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, on ne sait pas s’il est laissé intact, ou s’il est étendu (mais il est étendu sur les systèmes conformes XSI). Dans ce dernier cas, la portion supplémentaire est remplie de zéros. Avec ftruncate, le fichier doit être ouvert en écriture. |
truncate, et ftruncate renvoient 0 s’ils réussissent et −1 s’ils échouent, auquel cas errno contient le code d’erreur. |
Pour truncate: |
ENOTDIR |
un composant du chemin d’accès n’est pas un répertoire |
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 |
|
EACCES |
Un composant du chemin d’accès ne permet pas le parcours |
|
EACCES |
Le fichier n’est pas accessible en écriture. |
|
ELOOP |
Le chemin contient une référence circulaire (à travers un lien symbolique) |
|
EISDIR |
Le fichier est en réalité 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. |
|
EIO |
Une erreur d’entrée/sortie s’est produite pendant la mise à jour. |
|
EFAULT |
Path pointe en dehors de l’espace d’adressage accessible. |
Pour ftruncate: |
EBADF |
fd n’est pas un descripteur valide. |
|||
EINVAL |
fd est une socket, pas un fichier. |
|||
EINVAL |
fd n’est pas ouvert en écriture. |
BSD 4.4, SVr4 (cette fonction est apparue dans BSD 4.2). SVr4 mentionne des conditions d’erreurs supplémentaires pour truncate EINTR, EMFILE, EMULTIHOP, ENAMETOOLONG, ENFILE, ENOLINK, ENOTDIR. La version SVr4 de ftruncate dispose des conditions d’erreur supplémentaires EAGAIN et EINTR. POSIX dispose de ftruncate mais pas de truncate. Le standard Posix ne précise pas ce qui se passe si le fichier contient moins de length octets. |
Ces appels devraient être généralisés pour permettre la suppression d’une zone quelconque d’un fichier. |
open(2) |
Christophe Blaess, 1997. |
ftruncate(2) |