我需要用AuthorizationExecuteWithPrivileges执行一个帮助工具,将一些数据发送到它的stdin,并在stdout上读取一个回复。我可以通过communicationsPipe成功执行帮助工具并读取它的stdout,但如果我写入stdin,我必须关闭文件描述符以发送EOF,否则帮助工具将无限期地等待。由于返回的所有内容都是为读取和写入而打开的文件描述符,如何关闭写入结束,但保持读取结束?
答案 0 :(得分:0)
您可以将一个EOF(请参阅stdin.h定义的EOF)写入标准输入。应该这样做。您也可以通过命名管道或套接字与您的帮助工具进行通信,尽管帮助工具必须支持它。