我需要能夠執行一些shell命令,例如移動到正確的目錄,我有一些需要解碼的文件,然後使用另一個命令解碼它們。我讀了一些關於使用popen的東西,但我並沒有真正理解如何使用它來執行多個命令。在C++中使用popen執行shell命令
任何指針將不勝感激:)
感謝
FILE *pf;
char command[150];
char data[512];
// Execute a process listing
sprintf(command, "cd");
pf = _popen(command,"r");
sprintf(command, "cd Test_copy");
pf = _popen(command,"r"); */
sprintf(command, "java -jar Tool.jar -b x.fit x.csv");
pf = _popen(command,"r");
if(!pf){
fprintf(stderr, "Could not open pipe for output.\n");
return;
}
// Grab data from process execution
fgets(data, 512 , pf);
// Print grabbed data to the screen.
fprintf(stdout, "-%s-\n",data);
if (_pclose(pf) != 0)
fprintf(stderr," Error: Failed to close command stream \n");
一個簡要的例子,你正在做什麼將是有益的。對於超過1個命令,只需根據需要多次調用popen即可。你可能會發現http://pstreams.sourceforge.net/很有用。 – mloskot