濮阳杆衣贸易有限公司

主頁 > 知識庫 > linux system函數(shù)深入理解

linux system函數(shù)深入理解

熱門標(biāo)簽:凱立德劇院地圖標(biāo)注 曲阜地圖標(biāo)注app 哪個地圖標(biāo)注更清晰 內(nèi)蒙古電信外呼系統(tǒng) 漳州外呼系統(tǒng)怎么樣 地圖標(biāo)注小區(qū)項目入駐 天津人工電銷機器人費用 開封400電話辦理價格 4s店如何在百度地圖標(biāo)注
system(執(zhí)行shell 命令)
相關(guān)函數(shù)
fork,execve,waitpid,popen
表頭文件
#i ncludestdlib.h>
定義函數(shù)
int system(const char * string);
函數(shù)說明
system()會調(diào)用fork()產(chǎn)生子進程,由子進程來調(diào)用/bin/sh-c string來執(zhí)行參數(shù)string字符串所代表的命令,此命>令執(zhí)行完后隨即返回原調(diào)用的進程。在調(diào)用system()期間SIGCHLD 信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被忽略。
返回值
=-1:出現(xiàn)錯誤
=0:調(diào)用成功但是沒有出現(xiàn)子進程
>0:成功退出的子進程的id
如果system()在調(diào)用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數(shù)string為空指針(NULL),則返回非零值>。
如果system()調(diào)用成功則最后會返回執(zhí)行shell命令后的返回值,但是此返回值也有可能為 system()調(diào)用/bin/sh失敗所返回的127,因此最好能再檢查errno 來確認執(zhí)行成功。
附加說明
在編寫具有SUID/SGID權(quán)限的程序時請勿使用system(),system()會繼承環(huán)境變量,通過環(huán)境變量可能會造成系統(tǒng)安全的問題。
范例
#i ncludestdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
}
執(zhí)行結(jié)果:

-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。

標(biāo)簽:綿陽 武漢 莆田 南京 陽泉 開封 南陽 黔南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux system函數(shù)深入理解》,本文關(guān)鍵詞  linux,system,函數(shù),深入,理解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux system函數(shù)深入理解》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux system函數(shù)深入理解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    重庆市| 黄龙县| 清原| 杂多县| 文水县| 侯马市| 微山县| 宁乡县| 彰武县| 莆田市| 怀远县| 通河县| 修文县| 乌拉特后旗| 德江县| 靖安县| 宕昌县| 金门县| 辽阳市| 锡林浩特市| 廊坊市| 定兴县| 武穴市| 吉林市| 伊金霍洛旗| 东乡族自治县| 兰溪市| 专栏| 兴文县| 锦屏县| 慈利县| 施甸县| 湖北省| 天津市| 房产| 伊金霍洛旗| 大英县| 台中县| 仙游县| 唐河县| 静乐县|