linux c程式設計system與exec等區別簡介

2021-06-20 06:03:30 字數 959 閱讀 2002

//首先來看乙個示例:

#include

#include

#include

#include

int main()

printf("exit status=%d\n", status);

if((status=system("nosuchcommand"))<0)

printf("exit status=%d\n", status);

if((status=system("who;exit 44"))<0)

printf("exit status=%d\n", status);

exit(0);

}輸出如下:

2023年 03月 17日 星期六 12:15:20 cst

exit status=0

sh: nosuchcommand: not found

exit status=32512

fanglin  tty7         2012-03-17 08:57 (:0)

fanglin  pts/0        2012-03-17 08:58 (:0.0)

exit status=11264

說明:system函式呼叫來完成命令列的執行,而不直接用fork和exec,是因為system函式中進行了必須的錯誤處理和訊號處理,更有利於程式設計。

在此,exec實現方法略過,有興趣朋友可以試試用exec來實現看下效果。

system實際上還是fork+exec函式來執行外部程式,我夥來看現system的實現**#include

#include

#include

#include

int system(const char *cmdstring)

if((pid=for())<0)else if(pid==0)else

}return(status);

}

linux c 程式設計

linux下為了安全性不能雙擊執行控制台程式,只有gui程式才能雙擊執行.linux下檔案的型別是不依賴於其字尾名的,但一般來講 o,是目標檔案,相當於windows中的.obj檔案 so 為共享庫,是shared object,用於動態連線的,和dll差不多 a為靜態庫,是好多個.o合在一起,用於...

Linux C程式設計

套接字 sockets 即為網路程序id,是由執行這個程序的計算機的ip位址和這個程序使用的埠 port 組成.可以只用 netstat all 檢視當前系統中網路應用程序的套接字和埠.可以使用 輸出重定向到檔案.linux在標頭檔案中定義了通用的套接字結構型別,可供不同協議呼叫 struct so...

linux程式設計,慎用system

經過閱讀 linux下使用system 函式一定要謹慎 和linux下代替system的基於管道的popen和pclose函式 實現了在c語言程式設計封裝的system介面 include include include include include include include include...