Sunteți pe pagina 1din 2

Introduction de descripteur de fichier

Le filehandle FILE * de la bibliothque C Dentres/sorties standard est techniquement un


pointeur Vers une structure de donnes gres par les routines de Cette bibliothque. Sur
les systmes Unix, l'une de ces Structures inclut un descripteur de fichier pour l'objet en
Question. Puisque le nom de file handle se rfre cette Couche additionnelle, il n'est
pas interchangeable avec Celui de descripteur de fichier.

1 descripteur de fichier
Dans POSIX, un descripteur de fichier est un entier, et plus spcifiquement dans le
langage C, un entier de type int. Il y a trois descripteurs de fichier POSIX standard pour
tout processus qui n'est pas un dmon : Gnralement, un descripteur de fichier est un
index d'une entre dans le noyau-rsident, structure de donnes contenant les dtails de
tous les fichiers ouverts. Dans POSIX, on appelle cette structure de donnes une table de
descripteurs de fichier. Et chaque processus a sa propre table de descripteurs de fichier.
L'application utilisateur passe la cl abstraite au noyau par un appel systme et le noyau
accdera au fichier grce cette cl. L'application ne peut pas lire ou crire directement
la table des descripteurs de fichier. Dans un systme Unix, les descripteurs de fichier
peuvent dsigner des fichiers, des rpertoires, des devices bloc ou caractre (souvent
appels fichiers spciaux), des pipes nomms ou des pipes anonymes

Oprations sur les descripteurs de fichier


Un Unix moderne fournit typiquement les oprations suivantes sur les descripteurs de
fichier.

Appels systme de cration de descripteurs de fichier


_
_
_
_

open(), open64(), creat(), creat64()


socket()
socketpair()
pipe()

Oprations sur un seul descripteur de fichier


_ read(), write()
_ recv(), send()
_ recvmsg(), sendmsg() (permet d'envoyer des descripteurs de fichier un autre
processus)
_ sendfile()
_ lseek(), lseek64()
_ fstat(), fstat64()
_ fchmod()
_ fchown()

Oprations sur de multiples descripteurs de fichier


_ select(), pselect()
_ poll()
_
_
_
_
_

Oprations sur la table des descripteurs de fichier


close(descripteur)
dup(descripteur)
dup2()
fcntl (F_DUPFD)
fcntl (F_GETFD and F_SETFD)

Oprations qui modifient l'tat du processus


_ fchdir() : change le rpertoire de travail courant du processus appelant fourni sous
forme de descripteur de fichier
_ mmap() : projette des portions d'un fichier dans l'espace d'adresse du processus

Verrouillage de fichier
_ flock()
_ fcntl (F_GETLK, F_SETLK and F_SETLKW)
_ lockf()

Sockets
_
_
_
_
_
_
_
_

connect()
bind()
listen()
accept() : cre un nouveau descripteur de fichier lors d'une connexion entrante
getsockname()
getpeername()
getsockopt(), setsockopt()
shutdown() : ferme un ou les deux bouts d'une connexion full duplex

Divers
_ ioctl() : une large collection d'oprations diverse sur un seul descripteur de fichier,
souvent associ avec un device

Descripteurs de fichier et capacit

Les descripteurs de fichier Unix sont des capacits. Ils peuvent tre passs entre des
processus des sockets du domaine UNIX avec l'appel systme sendmsg(). Une table de
descripteurs de fichier Unix est un exemple de C-list.

S-ar putea să vă placă și