Loading

NOM

       close - Fermer un descripteur de fichier

SYNOPSIS

       #include <unistd.h>

       int close(int fd);

       close()  ferme  le  descripteur  fd, de manière à ce qu’il ne référence
       plus aucun fichier, et puisse être réutilisé.  Tous  les  verrouillages
       (voir  fcntl(2))  sur  le fichier qui lui était associé, appartenant au
       processus, sont supprimés (quel que soit le descripteur qui fut utilisé
       pour obtenir le verrouillage).

       Si  fd  est  le  dernier  descripteur  de  fichier  qui se réfère à une
       description  de  fichier  ouvert  sous-jacente  (voir   open(2)),   les
       ressources  associées à la description de fichier ouvert sont libérées.
       Si le descripteur était la dernière référence sur un  fichier  supprimé
       avec unlink(2), le fichier est effectivement effacé.

VALEUR RENVOYÉE

       S’il  réussit,  la  fonction  close() renvoie zéro. En cas d’erreur, il
       renvoie -1 et remplit errno avec le code d’erreur.

ERREURS

       EBADF  Le descripteur de fichier fd est invalide.

       EINTR  L’appel système close() a été interrompu par  un  signal ;  voir
              signal(7).

       EIO    Une erreur d’entrée-sortie s’est produite.

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001.

NOTES

       Ne  pas  vérifier  la  valeur  de  retour  de  close() est une pratique
       courante mais également une  grave  erreur  de  programmation.  Il  est
       possible  qu’une  erreur correspondant à un appel write(2) antérieur ne
       soit rapportée que lors du close() final. Ne pas vérifier la valeur  de
       retour  lorsque  l’on  ferme  un  fichier  peut  conduire  à  une perte
       silencieuse de données. Ceci est principalement vrai  dans  le  cas  de
       systèmes  de fichiers NFS, ou avec l’utilisation des quotas de disques.

       Une fermeture sans erreur ne garantit  pas  que  les  données  ont  été
       vraiment  écrites sur le disque, car le noyau repousse les écritures le
       plus tard possible. Il n’est pas fréquent  qu’un  système  de  fichiers
       vide  les  tampons  dès  la  fermeture  d’un flux. Si vous désirez vous
       assurer que les informations sont en sûreté  sur  le  disque,  utilisez
       fsync(2)  (mais  des  considérations  matérielles  entrent  en jeu à ce
       moment).

       Il est probablement imprudent de fermer  des  descripteurs  de  fichier
       alors  qu’ils  peuvent  peut-être  être utilisés par des appels système
       dans d’autres threads  du  même  processus.  Puisqu’un  descripteur  de
       fichier  peut  être  réutilisé,  il  y  a des conditions de concurrence
       obscures qui peuvent provoquer des effets de bord non désirés.

VOIR AUSSI

       fcntl(2), fsync(2), open(2), shutdown(2), unlink(2), fclose(3)

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@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez  signaler  toute  erreur   de   traduction   en   écrivant   à
       <debian-l10n-french@lists.debian.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> ».