web-dev-qa-db-fra.com

Quels sont ces fichiers dans mon répertoire / dev?

Je sais que la plupart des périphériques sont présentés dans le répertoire /dev, mais ce n’est que maintenant que j’ai remarqué deux noms très étranges, mais familiers, dans ce répertoire ...

Je parle de stdin@ et stdout@ en bas:

enter image description here

A quoi servent-ils? Sont-ils utilisés par les fonctions du langage C?

6
jcora

Ces fichiers sont en fait appelés stdin, stdout et stderr. Le caractère _@_ est ajouté par ls pour vous indiquer qu'ils sont liens symboliques . _ls -l_ indiquerait que les cibles de ces liens symboliques sont _/proc/self/fd/0_, _/proc/self/fd/1_ et _/proc/self/fd/2_.

/proc est un système de fichiers virtuel fourni par le noyau qui affiche des informations sur le système d'exploitation. Entre autres choses, il existe des répertoires tels que _/proc/1234_ qui contiennent des informations sur le processus portant l'ID 1234. _/proc/self_ est un lien symbolique vers le répertoire quel que soit le processus y accédant (le noyau renvoie une cible différente à une autre). processus).

_/proc/self/fd_ (qui est également lié symboliquement à _/dev/fd_) contient une entrée par fichier ouvert par le processus. Chaque entrée correspond à un descripteur de fichier et constitue un lien symbolique vers le fichier (si possible - pour les tubes, les sockets et les fichiers supprimés, le lien symbolique fournit des informations utiles pour le débogage mais ne pointe pas vers un fichier que vous pouvez rouvrir par nom). . Ces descripteurs de fichier sont les mêmes que vous manipulez avec des fonctions C telles que open, close, dup, read, write, etc. Ils ne le sont pas utilisé par les fonctions C, ce sont d'autres moyens d'interagir avec les mêmes objets.

La raison _/dev/stdin_ et les amis existent, c’est qu’un programme requiert parfois un nom de fichier, mais que vous souhaitez lui indiquer d’utiliser un fichier déjà ouvert (un canal, par exemple). Vous pouvez donc passer _/dev/stdin_ pour indiquer au programme de lire son entrée standard.

Lectures complémentaires:

11
Gilles