Alguém mencionou que existem três arquivos diferentes que um processo sempre abre. O que isto significa? Quais arquivos são eles?
Alguém mencionou que existem três arquivos diferentes que um processo sempre abre. O que isto significa? Quais arquivos são eles?
Respostas:
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.