国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux system函數深入理解

2020-06-13 12:15:34
字體:
來源:轉載
供稿:網友
本文將詳細介紹linux system函數的使用,需要了解的朋友可以參考下
 
 
system(執行shell 命令) 
相關函數 
fork,execve,waitpid,popen 
表頭文件 
#i nclude<stdlib.h> 
定義函數 
int system(const char * string); 
函數說明 
system()會調用fork()產生子進程,由子進程來調用/bin/sh-c string來執行參數string字符串所代表的命令,此命>令執行完后隨即返回原調用的進程。在調用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被忽略。 
返回值 
=-1:出現錯誤 
=0:調用成功但是沒有出現子進程 
>0:成功退出的子進程的id 
如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數string為空指針(NULL),則返回非零值>。 
如果system()調用成功則最后會返回執行shell命令后的返回值,但是此返回值也有可能為 system()調用/bin/sh失敗所返回的127,因此最好能再檢查errno 來確認執行成功。 
附加說明 
在編寫具有SUID/SGID權限的程序時請勿使用system(),system()會繼承環境變量,通過環境變量可能會造成系統安全的問題。 
范例 
#i nclude<stdlib.h> 
main() 

system(“ls -al /etc/passwd /etc/shadow”); 

執行結果: 

-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd 
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shado 

例2: 

char tmp[]; 
sprintf(tmp,"/bin/mount -t vfat %s /mnt/usb",dev); 
system(tmp); 
其中dev是/dev/sda1。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 甘德县| 丰镇市| 南城县| 凌海市| 谷城县| 奉化市| 泸州市| 田东县| 晋城| 辽阳县| 宕昌县| 威远县| 白朗县| 吉隆县| 娄烦县| 沐川县| 永丰县| 稷山县| 贡山| 太和县| 诸暨市| 德兴市| 炎陵县| 祁连县| 大化| 德化县| 临沧市| 米林县| 大英县| 永昌县| 华安县| 喀喇沁旗| 松原市| 翁牛特旗| 高台县| 泾源县| 哈尔滨市| 醴陵市| 台江县| 胶南市| 濮阳市|