程序等待
/*
* #include * #include */
pid_t getpid(); // 獲取本程序id, 查詢詳細資訊 man getpid
pid_t getppid(); // 獲取父程序id
關鍵api:fork。fork的核心是呼叫一次返回兩次。一次是父程序返回的,一次是子程序返回的。父程序中,fork返回
建立的子程序pid。在子程序中,fork返回0。如果出現錯誤,fork返回乙個負值。
#include
#include
int main()
輸出兩次,count兩次count都是1。原因是堆疊內容被拷貝了。
區別exec啟動乙個新的程式,替換原有的程序,此程序pid不會變。
execl
/*
* #include
* arg1~argn:被執行程式需要的命令列引數,包含程式名。以空指標null結束
*/int execl(const char * path, const char * arg1, ...);
eg
#include
int main()
execlp/*
* #include
* path:不包含路徑,將從path環境變數中查詢該程式
* arg1~argn:被執行程式需要的命令列引數,包含程式名。以空指標null結束
*/int execlp(const char * path, const char * arg1, ...);
execv/*
* #include * path:完整路徑
* arg1~argn:被執行程式需要的命令列引數,包含程式名。以空指標null結束
*/int execv(const
char * path, const
char * arg1);
system.c#include
void main()
/*
* #include
* #include
* 祖師當前程序,直到子程序退出
*/pid_t wait(int * status);
嵌入式Linux程序 程序間通訊
最常用的無名管道,有名管道,訊息佇列,訊號,訊號量,共享記憶體等程序間的通訊方式。其實後面網路通訊套位元組 socket的方式也可以歸為程序通行。include include include include 程序讀函式 void read data int 程序寫函式 void write dat...
嵌入式linux多程序程式設計
嵌入式linux多程序程式設計 在主程式顯示文字選單,提供如下服務,要求每個服務都通過生成子程序來提供。服務包括 日曆資訊顯示,日期資訊顯示,判斷閏年服務,檔案複製功能,數字排序功能,退出功能。include include include include include include void ...
嵌入式linux如何學習
俗話說萬事開頭難 然後中間難,最後難?剛開始的時候,你是否根本就不知如何開始,上網查資料被一堆堆新名詞搞的找不到北,去圖書館看書也是找不到方向?又是arm,又是linux,又是uboot頭都大了。不知道自己究竟從 開始?嵌入式linux如何學習 簡單說,從arm基礎知識到裸機程式設計,從ucosii...