2013-04-26 74 views
-1

我想通过C++程序执行一个脚本并获取它的输出。目前我在做用C++执行脚本

system("./script.sh > out.txt"); 

但是我需要得到输出字符串的命令,一些事情,如:

out = system("./script.sh"); 
printf(out); 

我无法读取该文件out.txt执行脚本,因为后我没有这方面的许可。我在其他框架(boinc)上部署了我的C++程序,但没有给我这个权限。

有没有人有提示? 在此先感谢! 费利佩

+0

在系统例程中用'chmod'更改文件权限? – Eric 2013-04-26 11:32:11

+0

似乎你想要['popen'](http://linux.die.net/man/3/popen)函数? – 2013-04-26 11:33:28

+0

重复。请看http://stackoverflow.com/questions/478898/how-to-execute-a-command-and-get-output-of-command-within-c/478960#478960 – fnc12 2015-09-25 08:57:24

回答

0

可以使用popen(),然后从打开的管道得到命令的输出通过popen()

FILE *fp; 
fp=popen("./script.sh","r"); 

,并让你的输出。你可以使用fgets()fread()像从文件中读取一样读取管道