File-Descriptors

什麼設置了孩子的 STDERR、STDOUT 和 STDIN?

  • December 12, 2012

如果一個程序執行fork()什麼設置標準流STDOUTSTDIN以及STDERR

標準輸入、標準輸出和標準錯誤是從父程序繼承的。如果需要,由子程序將它們更改為指向新文件。

fork(2)手冊頁:

  *  The  child inherits copies of the parent's set of open file descrip‐
     tors.  Each file descriptor in the child refers  to  the  same  open
     file  description (see open(2)) as the corresponding file descriptor
     in the parent.

正如 Kyle Jones 所說,它們是從父程序傳播的。如果您要問如何將它們設置在孩子身上,那麼您正在尋找freopen().

引用自:https://unix.stackexchange.com/questions/58252