我需要能够执行一些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