使用system呼叫shell指令碼時的返回值的使用

2021-04-22 14:31:43 字數 870 閱讀 7338

1. 建立乙個指令碼a,內容如下:

#!/bin/sh

#filename: a

exit 22

2. 建立乙個c語言程式1.c,呼叫該指令碼,通過system的返回值來判斷是否執行指令碼成功.

#include 

#include 

#include 

int main()

通過: g++ -o test 1.c得到可執行檔案:test.

執行:./text後得到的結果就是: 22.

3. 修改指令碼a,在a中實現檔案拷貝的功能,如果拷貝不成功,則出現乙個自定義的提示.

#!/bin/sh

#filename: a

if cp 1.c 2.c > /dev/null 2>

then 

echo "cp succeed !";

else

echo "`basename $0`: cp not succeed !";

fi執行text,得到的結果為:

cp succeed !

0如果要拷貝的檔案為3.c,該檔案是乙個不存在的檔案,如下所示:

#!/bin/sh

#filename: a

if cp 3.c 2.c > /dev/null 2>

then 

echo "cp succeed !";

else

echo "`basename $0`: cp not succeed !";

exit 1;fi

那麼執行./test後得到的結果就是:

a: cp not succeed !

1通過上面的操作我們知道了if在測試返回值的時候: 0表示真;1表示假.

system系統呼叫的使用

system 系統呼叫在應用中很廣泛 可以直接在c 中呼叫命令,執行一些特殊操作,用法如下.1.直接執行命令 可以在c檔案中直接執行命令,這是基本用法,例如 system mkdir test system chmod 777 test.bin 等等 2.如果需要執行的命令是變動的,則可以使用字串變...

C語言中system呼叫shell指令碼的問題

在c語言中使用system 語句呼叫shell指令碼時,c語言程式並不會等待system 語句執行完畢尤其在shell指令碼有呼叫bash下命令時並向檔案輸出時,又無法用重新整理標準輸出流緩衝區的方式來解決亂序輸出的問題.例如 c中部分 for int i 0 i 5 i system test.s...

system函式呼叫

相關函式 fork,execve,waitpid,popen 表頭檔案 include 定義函式 int system const char string 函式說明 system 會呼叫fork 產生子程序,由子程序來呼叫 bin sh c string來執行引數string字串所代表的命令,此命 ...