[英]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.