C程式呼叫shell指令碼共有三種方法

2021-06-08 02:59:20 字數 678 閱讀 5310

c程式呼叫shell指令碼共有三種法子 :system()、popen()、exec系列函式

call_exec1.c ,內容為:

system() 不用你自己去產生程序,它已經封裝了,直接加入自己的命令

exec 需要你自己 fork 程序,然後exec 自己的命令

popen() 也可以實現執行你的命令,比system 開銷小

1)system(shell命令或shell指令碼路徑);

system() 會呼叫fork()產生 子歷程,由子歷程來呼叫/bin/sh-c string來履行 引數string字串所代表的命令,此命令履行 完後隨即返回原呼叫的歷程。在呼叫system()期間sigchld 訊號會被暫時擱置,sigint和sigquit 訊號則會被漠視 。

返 回值:如果system()在呼叫/bin/sh時失敗則返回127,其他失敗原因返回-1。若引數string為空指標(null),則返回非零值。 如果 system()呼叫成功 則最後會返回履行 shell命令後的返回值,但是此返回值也有可能為system()呼叫/bin/sh失敗所返回的127,因 此最好能再反省 errno 來確認履行 成功 。

system命令以其簡略 高效的作用得到很很廣泛 的利用 ,下面是乙個例子

例:在/tmp/testdir/目錄下有shell指令碼tsh.sh,內容為

C程式呼叫shell指令碼共有三種方法

c程式呼叫shell指令碼共有三種方法 1 system 直接放入shell指令碼路徑 在c call shell.c檔案 1 include 2 include 3 include 4 include 56 void c call shell char shell path 7 12 13 int...

C語言呼叫SHELL指令碼

在linux 環境下shell指令碼具有非常強大的功能!使用shell可以很方便的使用和管理linux系統,最近學習了一點shell知識,所以一直在 想要是可以在c c 中呼叫shell指令碼那該有多好啊!因為使用c c 要幾百行 才能搞定的!使用shell只要短短十幾行就可以輕鬆搞定!includ...

Shell指令碼(三) Shell指令碼入門

1 指令碼格式 指令碼以 bin bash開頭 指定解析器 2 第乙個shell指令碼 helloworld 1 需求 建立乙個shell指令碼,輸出helloworld 2 案例實操 atguigu hadoop101 datas touch helloworld.sh atguigu hadoo...