Quels sont les descripteurs de fichier, a expliqué en termes simples?

  1. Ce qui serait un plus description simplifiée de descripteurs de fichiers par rapport à Wikipédia? Pourquoi sont-ils nécessaires? Dire, prendre des shell processus comme un exemple et comment faut-il faire la demande?

  2. Un tableau du processus de contenir plus d'un descripteur de fichier. Si oui, pourquoi?

  • Ce qui concerne les notions de stdin stdout stderr, etc ? J'ai une instance comme le disent navigateur processus ouvert et il a permis l'ouverture de certains fichiers temporaires s'affiche sur mon html . Le processus utilise le même fd pour lire / écrire ? Aussi le processus de la table ....... il a des entrées comme fd0 pointeur fd1 pointeur fd2 pointeur ..... est-ce à dire que tous ces fichiers sont dans la mémoire RAM ? Sinon, pourquoi les pointeurs ?
  • Lorsque vous ouvrez un fichier, le système d'exploitation crée un flux de données de ce fichier et de le connecter flux de fichier ouvert, le descripteur représente en effet que les flux. De même il y a quelques flux par défaut créé par l'OS. Ces cours d'eau sont connectés à votre terminal au lieu de fichiers. Donc, lorsque vous écrivez quelque chose dans le terminal, il va à flux stdin et les OS. Et quand vous écrivez "ls" de la commande sur le terminal, le système d'exploitation écrit la sortie vers stdout flux. stdout flux de données est connecté à votre moniteur, terminal, de sorte que vous pouvez voir la sortie il.
  • Concernant le navigateur exemple, il n'est pas nécessaire que le navigateur conserve les fichiers ouverts. Il dépend de la mise en œuvre de navigateur, mais dans la plupart des cas, le navigateur ouvrir un fichier temporaire, écrire le fichier, puis fermez le fichier, donc il n'est pas nécessaire que le fichier est ouvert, même si la page web est ouverte. Et le descripteur juste détient les informations du fichier et n'est pas nécessairement garder le fichier dans la RAM. Quand vous lisez les données à partir d'un descripteur, le système d'exploitation de lire les données à partir du disque dur. Les informations dans le fichier descripteur de juste représente l'emplacement du fichier sur le disque dur, etc..
  • Fichier descripteur de fichier n'est pas une association. Je pourrais ouvrir() le même fichier 4 fois et obtenir 4 types de descripteurs de fichiers. Chacun de ce qui pourrait être utilisée (selon les indicateurs transmis à l'open () pour la lecture, l'écriture ou les deux. Quant à savoir si le fichier de vie dans la mémoire RAM ou sur le disque - ce qui est caché par le noyau, et de ses différents caches. En fin de compte qu'est-ce que le cache va correspondre à ce qui est sur le disque (pour l'écriture), et le noyau ne sera pas revenir en arrière à disque, pour la lecture, si les données sont déjà dans le cache.
  • Ma question peut aller trop loin, mais comment OS déterminer les ats pour afficher les sorties lorsque les indices de fd1 et fd2 sont fixes?
  • C'est un bon article pour comprendre facilement bottomupcs.com/file_descriptors.xhtml
  • Ils passent pour ce qu'ils sont allés dans le processus parent, à moins que quelque chose l'emporte.
  • Merci pour le partage de l'article. C'était vraiment bien écrit.
  • Voici un bel aperçu de l'histoire: flux Standard à partir de wikipedia. L'article remonte aux années 1950 et discute Unix conception, et explique pourquoi ils ont été normalisés et les valeurs.
  • merci pour l'article. C'est une grande question, mais aucune des réponses a donné un exemple concret, comme cet article.
  • aussi cette question peut-être être utile

InformationsquelleAutor Nishant | 2011-03-10