簡體   English   中英

在Linux下從C程序運行多個C程序

[英]Running multiple C programs from a C program under Linux

我正在嘗試在Linux下學習一些關於進程通信的內容,所以我編寫了兩個相互通信的簡單C程序。

但是,每次都必須手動運行它們有點煩人,所以我想知道是否有辦法制作一個可以同時運行它們的程序,如下所示:

./runner program1 program2

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

run.sh腳本

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

運行命令:

$sh run.sh

這行會做(在Bash中):

program1 & program2 &

如果要記錄輸出:

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

如果要在兩個單獨的終端中運行命令:

xterm -e program1 & xterm -e program2 &

為什么不用這個:

./program1;./program2

要么

./program1 &;./program2 &

我不知道為什么有人認為它沒用,但確實有效。

當然你可以寫一個腳本,但腳本的內容是什么?還是一樣的。

您可以立即更改它,而無需先打開腳本。

只需編寫一個shell腳本來執行您想要的操作 - 您不需要使用C程序來運行C程序。

完全按照你的要求做,首先創建一個名為runner的文件,它將是shell腳本。

#!/bin/bash

for arg in $@
do
$arg & 
done

bash中的$@是傳遞給腳本的所有參數的數組,這使得腳本不限於僅啟動2個程序。 請注意,使用此腳本啟動的任何程序都必須位於 $PATH或者以./program1傳遞給腳本。

./runner ./program1 program2 

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM