linux之程序執行緒

2022-08-24 03:06:16 字數 1230 閱讀 9686

1.pid唯一描述乙個程序

getpid()函式返回程序id號,getppid返回其父程序的id號

返回型別為pid_t型--通過typedef定義為unsigned int

2.fork()函式:以父程序為藍本複製乙個程序,執行一次返回兩次。

標頭檔案:#include,#include

返回-1建立失敗

返回0在子程序中執行。

返回程序id號在父程序中執行

3.system()函式:阻塞當前程序去執行特定的命令,直到執行完畢。

#include

int system(const char *command);

返回值: 失敗返回-1,sh不能執行,返回127.成功返回程序狀態值

4.exec()函式系列:代替原來的程序,pid號也相同

5.使用者態初始程序init()

檢視程序關係樹命令:pstree

5.管道

#include

int pipe(int filedes[2]);    //引數為檔案描述符的陣列,儲存管道返回的兩個檔案描述符

即fd1(寫操作二建立和開啟)的輸出變成了fd0(讀操作)輸入

執行成功返

回0;失敗返回-1

父子程序通訊:

write函式定義如下:

#include ssize_t write(int filedes, void *buf, size_t nbytes);

//返回:若成功則返回寫入的位元組數,若出錯則返回-1

//filedes:檔案描述符

//buf:待寫入資料快取區

//nbytes:要寫入的位元組數

read函式定義:

#include ssize_t read(int filedes, void *buf, size_t nbytes);

//返回:若成功則返回讀到的位元組數,若已到檔案末尾則返回0,若出錯則返回-1

//filedes:檔案描述符

//buf:讀取資料快取區

//nbytes:要讀取的位元組數

6.linux建立管道

mkfifo lsy

用ls -al 檢視管道檔案屬性為p

7.linux下的執行緒

linux程序 執行緒協作 之 epoll

typedef union epoll data epoll data t struct epoll event events可以是以下幾個巨集的集合 epollin 表示對應的檔案描述符可以讀 包括對端socket正常關閉 epollout 表示對應的檔案描述符可以寫 epollpri 表示對應的...

linux程序和執行緒

這兩天一直在看linxu程序和執行緒的東西,總是效率比較低,這麼一點基礎的東西還看了這麼久。該自我反省一下。首先來看看程序。程序分為三個部分,程序控制塊,程式段和資料段。程序是乙個有生命的實體,程式是乙個沒有生命的實體。只有cpu賦予程式生命的時候,程式才成為乙個活動的實體,我們稱之為 程序 每乙個...

Linux程序和執行緒

linux核心只有程序,沒有執行緒的概念。非要說區別,那就是執行緒沒有自己的單獨的位址空間 mm struct 執行緒和其父程序共享位址空間。pthread呼叫fork clone vm 來建立新的程序,子程序與父程序共享vm空間。注意,這裡實際上是共享mm struct結構,子程序甚至沒有建立自己...