2011-02-23 74 views
0

我需要執行一個幫助工具AuthorizationExecuteWithPrivileges,將一些數據發送到它的stdin,然後讀取標準輸出上的回覆。我可以成功地執行助手工具並通過通信管道讀取它的stdout,但是如果我寫入它的stdin,我必須關閉文件描述符才能發送EOF,否則輔助工具將無限期地等待。由於所有返回的結果都是爲讀寫而打開的文件描述符,我該如何關閉寫入結束,但是保持讀取結束?使用AuthorizationExecuteWithPrivileges的雙向通信

回答

0

你可以寫一個EOF(參見stdin.h定義的EOF)給stdin。這應該做到這一點。您也可以通過命名管道或套接字與您的幫助工具進行通信,但幫助工具必須支持該功能。