close   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 28 décembre 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
close - Fermer un descripteur de fichier  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <unistd.h>

int close(int fd);
 



DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 d'enregistrement (voir fcntl(2)) sur le fichier qui lui était associé, appartenant au processus, sont supprimés (quelque soit le descripteur qui fut utilisé pour obtenir le verrouillage).

Si fd est le dernier descripteur de fichier faisant référence à la 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
S'il réussit, close() renvoie zéro. S'il échoue, il renvoie -1 et errno contient le code d'erreur.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EBADF
Le descripteur de fichier fd est invalide
EINTR
L'appel système close() a été interrompu par un signal.
EIO
Une erreur d'entrée-sortie s'est produite.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
SVr4, BSD 4.3, POSIX.1-2001.  



NOTES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 fichiers alors qu'ils peuvent peut-être être utilisés par des appels système dans d'autres threads du même processus. It is probably unwise to close file descriptors while Puisqu'un descripteur de fichier peut être réutilisé, il y a des conditions de concurrence obscures qui peuvent provoquer des effets de bord indésirés.  




VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
fcntl(2), fsync(2), open(2), shutdown(2), unlink(2), fclose(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 9 octobre 1996 et révisée le 8 janvier 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 close ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EBADFERREURS
EINTRERREURS
EIOERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:48:58, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional