在C ++程序中包含linux命令

时间:2014-08-07 20:58:52

标签: c++ linux

我打算在C ++程序中包含一个linux命令。我一直在使用system()函数来实现这种效果,就像打印我一直在使用系统(“pwd”)的当前目录一样,系统调用和信号是'ls'我用过的系统(“strace ls”) ),但是现在我想使用strace命令,这样用户就可以输入命令(比如ls,mv,who等)或者他想要在没有硬编码的情况下进行处理的过程。

2 个答案:

答案 0 :(得分:3)

对于像cdulimit(等等)的shell builtins,在system(3)的参数中使用它们是没用的,因为它只会影响syscall {1}}进程由/bin/sh启动。 您需要在C程序中使用相关的chdir(2),例如致电setrlimit(2)syscalls(2)

例如,system可能有一定道理。

系统调用列表位于Advanced Linux Programming。另请阅读popen(3)

顺便说一下,大多数命令都会给出一些输出(至少如果有合适的程序参数询问)。您可能希望将{{3}}与system("cd /tmp; gzip a*"); ...

一起使用

答案 1 :(得分:0)

您可以使用system()系统调用来执行linux命令。您甚至可以通过替换进程地址空间来使用execl变量来执行linux命令。