1.程序id
每乙個程序都由乙個唯一的識別符號表示,即程序id,簡稱
pid.
系統保證在某時刻每個
pid都是唯一的。
1.1分配程序id
預設情況下,核心將程序id的最大值限制為
32768
,可以在此處設定
/proc/sys/kernel/pid_max,
在短時間內,核心不會重用已經分配的
id.
2.獲得程序
id和父程序id
#include #include#include
intmain()
3.執行新程序
首先建立新的程序fork()
在新的程序中執行程式exec系列的系統呼叫
4.exec系列的系統呼叫
execl()函式的原型為
int execl(const char *path,const char *arg,...)
path是程式路徑,
arg是傳遞給指定程式的可變長度引數列表,最後必須是
null結尾
const 也可以和指標變數一起使用,這樣可以限制指標變數本身,也可以限制指標指向的資料。
通常情況下execl()不會返回結果,成功的呼叫會以跳到新的程式的入口點作為結束,錯誤的時候會返回-1
intret;
ret=execl("
/usr/bin/vim
","vim
","text.txt
",null);
if(ret==1
)
5.fork()系統呼叫
建立乙個和當前程序映像一樣的程序可以通過fork()系統呼叫,呼叫者從
fork()
返回後,仍然繼續執行。
當前程序就是父程序,建立成功的程序是子程序。
在父程序成功的fork()呼叫,會返回子程序的
pid
在子程序fork()呼叫會返回0
#include #includeintmain()else
if(ret==0
)else
if(ret==-1
)
}
我是父程序,pid=13890 , ppid=10038 ,我新建的子程序
pid=13891
我是子程序,pid=13891 , ppid=13890
linux c語言獲取系統時間
gmtime 取得目前時間和日期 獲得相關函式 time,asctime,ctime,localtime 表頭檔案 include 定義函式 struct tm gmtime const time t timep 函式說明 gmtime 將引數timep 所指的time t 結構中的資訊 轉換成真實...
Linux C語言操作Mysql
rpm ivh 安裝 i 安裝,v 顯示進度,h列印 表示進度 var lib mysql 日誌檔案,資料庫檔案存放目錄 usr lib mysql 介面函式動態連線庫存放目錄 usr include sql 介面函式庫檔案頭存放目錄 啟動mysql service mysql start 停止my...
Linux C語言檔案讀寫
include include include include include include void main int fd,size char s hello world buffer 200 開啟 home yyf desktop linux 做寫入,如果該檔案不存在則建立該檔案 引數o w...