C,在一个shell-instance中执行多个命令

时间:2016-03-20 13:01:31

标签: c linux bash shell terminal

有没有办法在同一个shell-instance中执行shell命令?因为,system()在执行命令后离开了启动的shell。

2 个答案:

答案 0 :(得分:1)

您始终可以使用分号将shell命令构造为单行命令。如:

cd /home/user;mkdir tmp;ls

答案 1 :(得分:0)

您的意思是在运行程序的同一终端中执行命令吗?您可以使用popen

实现这一目标
#include <stdio.h>

int main() {
    FILE *f = popen("ls", "r");
    char line[1024];
    size_t len;
    while (fgets(line, 1024, f) != NULL) {
        printf("%s", line);
    }
    pclose(f);
    return 0;
}