我需要使用popen打開子進程,進程將不斷詢問用戶輸入...主進程需要通過管道發送該數據。在C++中使用popen連續寫入子進程
這是我第一次嘗試:
FILE *in;
char buff[1024];
if(!(in = popen("cd FIX/fix2/src; java -cp .:./* com.fix.bot", "w"))){
return 1;
}
while(1){
char buffer[] = { 'x' };
fwrite(buffer, sizeof(char), sizeof(buffer), in);
cout << "Wrote!" << endl;
usleep(1000000);
}
但是不發送數據!我需要用pclose()關閉管道,以便將數據寫入進程。如何確保無需每次關閉管道都能寫入數據?
有沒有可能您的應用程序正在查找以\ n結尾的輸入?因爲你現在沒有發送LF ... –
不要忘記檢查'fwrite()的結果'我認爲它不能保證寫出你請求的所有東西。通常它會,但你需要驗證。 –