Tiga file apa yang selalu dibuka oleh suatu proses?

7

Seseorang menyebutkan bahwa ada tiga file berbeda yang selalu dibuka oleh suatu proses. Apa artinya ini? File apa itu?

unix_newbie
sumber

Jawaban:

10

File yang dibuka bukan file di disk. Mereka adalah stream (file pseudo), stdin (0), stdout (1), dan stderr (2). Berikut adalah kutipan yang relevan dari standar POSIX :

File dengan buffering terkait disebut stream dan dinyatakan sebagai pointer ke jenis FILE yang ditentukan. Fungsi fopen () harus membuat data deskriptif tertentu untuk streaming dan mengembalikan pointer untuk menunjuk aliran dalam semua transaksi lebih lanjut. Biasanya, ada tiga stream terbuka dengan pointer konstan yang dideklarasikan di header dan terkait dengan file open standar.

Pada awal program, tiga aliran harus ditentukan sebelumnya dan tidak perlu dibuka secara eksplisit: input standar (untuk membaca input konvensional), output standar (untuk penulisan output konvensional), dan standard error (untuk penulisan output diagnostik). Ketika dibuka, aliran kesalahan standar tidak sepenuhnya buffered; input standar dan output stream standar sepenuhnya buffered jika dan hanya jika aliran dapat ditentukan untuk tidak merujuk ke perangkat interaktif.

jordanm
sumber