Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       close - Fermer un descripteur de fichier

SYNOPSIS

       #include <unistd.h>

       int close(int fd);

DESCRIPTION

       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 (consultez 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  (consultez  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 ; consultez 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.Notez que la valeur de retour ne devrait être utilisée
       que pour les diagnostics. En particulier, close() ne doit pas faire l'objet d'une nouvelle
       tentative  après  l'erreur EINTR, car cela pourrait entrainer la fermeture d'un decripteur
       réutilisé par un autre thread.

       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.57 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

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       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> ».