我有一个服务器应用程序在单独的线程中写入 popen("myCommand", "w") 文件描述符,如果传递给 popen() 的命令导致任何输出到 stdout 或 stderr,则我的应用程序退出。但是,这只是通过 inetd 调用我的服务器应用程序时的问题,如果我使用 ssh 启动服务器,则不会出现此问题。
同样,当我的服务器应用程序在单独的线程中从 popen("myCommand2", "r") 文件描述符中读取并且传递给 popen() 的命令导致任何输出到 stderr(stdin 将进入我的管道)时,应用程序退出。同样,这只发生在 inetd 召唤,而不是 ssh 召唤。