我在freebsd下用C開發。我使用cron job來調用一個使用fork()/ exec()調用另一個程序B的程序A.在A中,我使用syslog()將日誌寫入/ var/log/messages,但是B輸出到stdout所以B的輸出不會寫入/ var/log/messages。如何將子進程的輸出重定向到syslog?
如何在不修改B代碼的情況下將B的輸出重定向到syslog?我猜應該有一些機制將B的輸出重定向到A中的某個fd,但由於我使用syslog()而不是直接在A中打開文件,所以我不確定這是如何工作的。
感謝您的建議!
查看'popen',它允許您訪問進程的輸入和輸出文件描述符,也許您可以使用代替我們自己的fork/exec。 – Joe