中使用Popen执行Shell命令

中使用Popen执行Shell命令

本文介绍了在C ++中使用Popen执行Shell命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要能够执行一些shell命令,例如移到我需要解码的文件的正确目录,然后使用另一个命令对其进行解码。我读了一些有关使用popen的资料,但我真的不明白如何使用它执行多个命令。

I need to be able to execute some shell commands such as moving to the right directory where I have some files I need to decode and then decoding them using another command. I read some stuff about using popen but I didnt really understand how to use it for executing multiple commands.

任何指针将不胜感激:)

Any pointers will be greatly appreciated :)

谢谢

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


推荐答案

不,不要。这就像用大锤敲门。此外,它是邪恶的:

No, don't. That would be like using a sledgehammer to knock on a door. Furthermore, it is "evil": http://www.cplusplus.com/forum/articles/11153/

这篇关于在C ++中使用Popen执行Shell命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-30 16:42