【问题标题】:Running multiple C programs from a C program under LinuxLinux下从一个C程序运行多个C程序
【发布时间】:2012-03-01 17:36:15
【问题描述】:

我正在尝试学习一点或两点关于 Linux 下进程通信的知识,所以我编写了 2 个相互通信的简单 C 程序。

但是,每次都必须手动运行它们有点烦人,所以我想知道有没有办法制作一个可以同时运行它们的程序,如下所示:

./runner program1 program2

我正在使用最新的 Ubuntu 和 Bash shell。

【问题讨论】:

    标签: c linux process execute


    【解决方案1】:

    run.sh 脚本

    #!/bin/sh
    ./program1 & 
    ./program2 &
    

    运行命令:

    $sh run.sh
    

    【讨论】:

      【解决方案2】:

      这一行会做(在 Bash 中):

      program1 & program2 &
      

      如果要记录输出:

      program1 >output1.txt & program2 >output.txt &
      

      如果您想在两个单独的终端中运行命令:

      xterm -e program1 & xterm -e program2 &
      

      【讨论】:

        【解决方案3】:

        为什么不用这个:

        ./program1;./program2
        

        ./program1 &;./program2 &
        

        我不知道为什么有人认为它没有用,但它确实有效。

        你当然可以写一个脚本,但脚本的内容是什么?还是一样的。

        您可以一次更改它,而无需先打开脚本。

        【讨论】:

          【解决方案4】:

          只需编写一个 shell 脚本来做你想做的事——你不需要使用 C 程序来运行 C 程序。

          【讨论】:

            【解决方案5】:

            完全按照您的要求做,首先创建一个名为runner 的文件,该文件将是shell 脚本。

            #!/bin/bash
            
            for arg in $@
            do
            $arg & 
            done
            

            $@ in bash 是传递给脚本的所有参数的数组,这使得脚本不限于仅启动 2 个程序。 请注意,您使用此脚本启动的任何程序都需要在 $PATH 上或作为./program1 传递给脚本。

            ./runner ./program1 program2 
            

            在示例中,program1 不在 $PATH 上,但 program2 在。

            【讨论】:

              猜你喜欢
              • 2012-02-25
              • 1970-01-01
              • 2011-10-17
              • 1970-01-01
              • 2014-06-10
              • 2016-12-25
              • 2013-07-07
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多