【问题标题】:C , Execute multiple commands in one shell-instanceC , 在一个 shell-instance 中执行多个命令
【发布时间】:2016-03-20 13:01:31
【问题描述】:

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

【问题讨论】:

    标签: c linux bash shell terminal


    【解决方案1】:

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

    cd /home/user;mkdir tmp;ls
    

    【讨论】:

    • 在我的情况下这是不可能的
    【解决方案2】:

    您的意思是在运行您的程序的同一终端中执行命令吗?您可以通过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;
    }
    

    【讨论】:

    • 我不确定.. 我想做一个“web shell”。我可以像远程外壳一样使用的网站。因此 main() 函数将由网络服务器执行。所以我使用 system() 来执行从客户端传输的命令。但是例如。 cd 这样不行
    • 如果您正在编写 Web 服务器,您可能需要考虑使用 node.js、python 或 php 等语言。 C 对于网站来说并不理想。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多