Linux程序 執行緒中的常用函式

2021-08-09 13:31:09 字數 1375 閱讀 6468

自己複習用,已經比較熟的就不多寫了。

1、程序相關的函式

(1)getpid

(2)getppid

(3)程序建立:fork

注意:子程序fork之後獲得了父程序的資料空間、堆疊的複製品。

(4)sleep

(5)exec函式族

這個比較複雜,有:execl、execv、execle、execve、execlp、execvp六個函式。

l的意思是函式接收以逗號分隔的引數列表,最後以null為結束標誌,例如:execl("/bin/ls","ls","-l",null);

v的意思是函式接收以null結尾的字串陣列的指標,例如我們先準備好指標:char* arg=,就可以用execv("/bin/ls",arg)來呼叫執行ls -l命令了。

p的意思是函式接收以null結尾的字串陣列指標,函式可以path變數去查詢子程式檔案(也就是說我們不用自己去指定路徑了),例如execlp("ls","ls","-l",null);

e的意思是說我們可以改變子程序的環境,如果沒有e,預設使用當前的環境。

(6)_exit

終止程序,緩衝區將不被儲存。

(7)exit

終止程序,緩衝區被儲存。

(8)wait

傳入乙個整型指標來獲取子程序結束的狀態,一般要配合其他巨集使用。執行結束後返回子程序的id號。

(9)waitpid

waitpid(pid_tpid, int* status, int options),第乙個引數是子程序id,第二個是子程序狀態,

2、執行緒相關的函式

(1)pthread_create

這個函式比較複雜:int pthread_create(pthread_t * thread, const pthread_attr_t * attr,void * (* start_routine)(void*), void* arg)。

示例**:

#include#include#include#include#includepthread_t ntid;

void printids(const char* s)

void *thread_fun(void* arg)

int main(void)

printids("我是父程序:");

sleep(2);

return 0;

}

(2)pthread_exit

傳入乙個無型別指標終止執行緒。

(3)pthread_join

類似waitpid,傳入要等待的執行緒的執行緒號,第二個引數用來接收執行緒返回值,通常可設為null,這個函式會把當前執行緒掛起,等待指定的執行緒結束。

linux中的執行緒函式

函式pthread create 作用 建立執行緒 函式原型 int pthread create pthread t tidp,const pthread attr t attr,void start rtn void void arg 引數 tidp 執行緒id attr 執行緒屬性 通常為空 ...

linux程序執行緒 alarm鬧鐘函式

1 alarm 返回值 距離上一次鬧鐘出發剩餘秒數第一次設定返回0,第二次設定了返回距離上乙個鬧鐘的剩餘的秒數。1 引用標頭檔案 include 2 函式標準式 unsigned int alarm unsigned int seconds 3 功能與作用 alarm 函式的主要功能是設定訊號傳送鬧...

linux中監視某個程序的執行緒

在linux下進行業務開發的時候,尤其是在應用第三方包的時候,首先要分析程序中的執行緒數目,檢視程序的執行緒數對於開發或者是運維都是乙個必備的技能。程序的id 也就是 pid,由於linux中線程和程序都有各自的程序描述符,本質上程序和執行緒都是 clone 產生的,對於執行緒來說只要不檢視執行緒所...