C語言獲取linux shell命令返回值

2021-10-09 08:22:45 字數 791 閱讀 6110

c語言執行linux shell命令,對於沒有返回結果的,可直接使用system()函式,對於有返回結果的,可以用popen命令,對其封裝後,可以獲取相應的返回資訊,封裝函式如下:

int

systemrtn

(const

char

* cmd,

char

* pbyrtnstr)

while

(fgets

(result_buf,

256, fp)

!=null)}

noncelen =

strlen

(result_buf)

;memcpy

(pbyrtnstr+ntotallen, result_buf, noncelen)

; ntotallen +

= noncelen;

//printf("命令[%s] 輸出[%s]\r\n", cmd, result_buf);

memset

(result_buf,

0, noncelen);}

*(byrtnstr+ntotallen)

='\0'

;/*等待命令執行完畢並關閉管道及檔案指標*/

rc =

pclose

(fp);if

(-1== rc)

else

}

cmd:要執行的shell命令

pbyrtnstr:獲取shell命令的結果,一般在外部呼叫時傳入陣列的指標或動態記憶體的指標

Linux shell 字元子串獲取

這篇文章主要介紹shell指令碼程式設計中的獲取子串用法 返回變數 parameter的內容 返回變數 parameter的內容長度,適用於特殊變數 返回變數 parameter中,從offest位置後到結尾的字串 返回變數 parameter中,從offest位置後提取長度為length的字串 返...

C語言編寫Linux shell直譯器的問題

include include include include include include define maxargs 20 最多接受20個引數 define arglen 100 長度最多100 intmain else return0 void execute char arglist c...

linux shell獲取環境變數運算

很多shell運算需要獲取環境變數,例如a b,其中a或者b可能都來自於環境變數。但是環境變數可能出現不存在的情況,這時運算就會出錯。所以在計算前需要判斷其是否存在 z test 更複雜的 input 1 test mode 2 if z test mode then ret 1 elif test...