在c ++中使用popen执行shell命令

时间:2011-08-26 16:41:29

标签: visual-c++ shell command-prompt

我需要能够执行一些shell命令,例如移动到我需要解码的一些文件的正确目录,然后使用另一个命令解码它们。我读了一些关于使用popen的东西但是我并不真正理解如何使用它来执行多个命令。

任何指针都将非常感激:)

由于

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");

2 个答案:

答案 0 :(得分:0)

使用ShellExecute播放文件(使用默认应用程序等打开)。使用system运行shell命令。

答案 1 :(得分:0)

不,不要。那就像用大锤敲门。此外,它是“邪恶的”:http://www.cplusplus.com/forum/articles/11153/