我有一个将日志输出显示到标准输出的程序。
因此,如果我打开一个到我的目标 linux 的 telnet 会话,然后在这个 telnet 会话上启动我的程序,那么我将在我的 telnet 会话上显示日志消息。
在我的程序中,我运行了一个小型 http 服务器。现在,如果我更改目标 linux 的 IP 地址,然后重新启动接口(http 服务器将自动重新启动,因为我使用 netlink 检测到 IP 地址的更改)然后我将关闭 telnet 会话并重定向 stdout 消息到我的 http 服务器打开的套接字,我将锁定日志消息的 printf。
我尝试使用 select 来检测这个锁,但没有成功:How to use select with stdout?
在进入 prinf 之前选择返回成功(锁定)
有什么建议可以避免这个问题吗?