Quais são os três arquivos sempre abertos por um processo?


7

Alguém mencionou que existem três arquivos diferentes que um processo sempre abre. O que isto significa? Quais arquivos são eles?

Respostas:


10

Os arquivos que são abertos não são arquivos no disco. Eles são os fluxos (pseudo arquivos), stdin (0), stdout (1) e stderr (2). Aqui está o trecho relevante do padrão POSIX :

Um arquivo com buffer associado é chamado de fluxo e é declarado como um ponteiro para um tipo definido FILE. A função fopen () deve criar certos dados descritivos para um fluxo e retornar um ponteiro para designar o fluxo em todas as transações posteriores. Normalmente, existem três fluxos abertos com ponteiros constantes declarados no cabeçalho e associados aos arquivos abertos padrão.

Na inicialização do programa, três fluxos devem ser predefinidos e não precisam ser abertos explicitamente: entrada padrão (para leitura de entrada convencional), saída padrão (para gravação de saída convencional) e erro padrão (para gravação de saída de diagnóstico). Quando aberto, o fluxo de erro padrão não é totalmente armazenado em buffer; os fluxos de entrada e saída padrão são totalmente armazenados em buffer se, e somente se, o fluxo puder ser determinado para não se referir a um dispositivo interativo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.