我在守护程序中遇到问题。问题是在关闭所有打开的描述符后,我需要重新打开 stdout 文件以打印消息。
我有一个办法。但这行不通。
方法是使用 dup 复制标准输出描述符并重新打开它。但是称为去魔化函数会关闭所有文件描述符。因此,该重复文件描述符也已关闭。
谁能帮我做到这一点。
如果使用daemon()
守护程序,则可以指定noclose
以防止关闭这些文件描述符:
daemon(0, 1);
但是您应该在手动检查后关闭它们,否则您的终端可能会搞砸。