Linux庫函式學習

2021-09-29 00:07:53 字數 2230 閱讀 6361

一、檔案io類

1、open、close、read、write基礎開關檔案、讀寫操作。

2、lseek函式:在指定的檔案描述符中將檔案指標定位到相應的位置。

3、fcntl函式:檔案加鎖、解鎖。

4、select、poll函式:實現多路io復用。

5、fget:從指定的流中讀取資料。

二、程序控制類

1、fork()函式:建立子程序。

2、wait、waitpid:使父程序阻塞,直到乙個子程序結束或者該程序接到乙個訊號為止。

3、exec函式族:取代原程序的資料**段,實現linux下任何可執行的指令碼檔案。

4、exit()、_exit():終止程序,前者會保證緩衝區的儲存,後者是暴力結束。

三、程序間通訊

管道

1、pipe:建立管道,兩個親子程序間可進行寫和讀取。

2、popen、pclose:管道建立,關閉。將建立子程序等一系列函式封裝到乙個函式內,執行exec函式族,實現相應的指令碼功能。

fifo:

3、mkfifo:建立有名管道fifo。

訊號:

4、kill、raise:同kill系統命令一樣,可以傳送訊號給程序或程序組。raise可向自身傳送訊號。

5、alarm:在程序中設定乙個定時器,時間到了就向程序傳送sigarm訊號。

6、pause:將呼叫程序掛起直至捕捉到訊號為止。

7、signal、sigaction:訊號處理函式。裡面包含的引數有使用者自定義的訊號處理函式。

8、sig訊號集函式組:對訊號集合進行一系列的操作,主要有訊號的阻塞遮蔽操作,在訊號遮蔽過程中,出現的所有被遮蔽的訊號,不管發生多少次,在訊號解除遮蔽後,系統只會執行一次被遮蔽訊號上的操作。

訊號量:

9、semget:建立訊號量或者系統已存在的訊號量。

10、semctl:用setval初始化訊號量;ipc_rmid進行刪除訊號量的操作。

11、semop:訊號量的pv操作。

共享記憶體:

12、shmgget:從記憶體中獲得一段共享記憶體區域。

13、shmat:把共享記憶體對映到具體的程序空間中。

14、shmdt:撤銷共享記憶體的對映。

訊息佇列:

15、msgget:建立訊息佇列。

16、msgsnd:新增訊息到已開啟的訊息佇列隊尾。

17、msgrcv:把訊息從訊息佇列中取走,可指定取走某一條資訊。

18、msgctl:控制訊息佇列,包含刪除訊息佇列的操作。

四、多執行緒程式設計

1、pthread_create、pthread_exit:執行緒的建立退出操作。

2、pthread_join:將當前執行緒掛起等待某一線程的結束,阻塞型。

3、pthread_cancel:終止另乙個執行緒的進行。

互斥鎖

4、pthread_mutex_:互斥鎖控制。包括初始化(init)、上鎖(lock)、解鎖(unlock)等操作。

訊號量:實現執行緒的同步和互斥操作。

5、sem_init:建立訊號量。

6、sem_wait、sem_trywait:p操作。

7、sem_post:v操作。

8、pthread_attr_:執行緒屬性設定。包括繫結屬性(與核心執行緒繫結)和分離屬性(是否在pthread_join函式返回時才釋放該執行緒的資源)。

五、網路程式設計

1、socket:建立乙個socket連線,指定型別等資訊。

2、bind:將本地ip位址繫結到埠號,主要用於tcp的連線。

3、listen:成功建立繫結後,還需要準備在該套接字上接收客戶端新的請求。該函式建立乙個等待佇列,存放未處理的請求。

4、accept:服務端程式呼叫該函式等待並接收客戶端的連線請求。

5、connect:用於client端和伺服器端建立連線,阻塞型函式。

6、send和recv:用於傳送和接收資料,阻塞型函式。

7、sendto和recvfrom:同6,形參較少的傳送和接收資料。

8、fcntl、select:同io,非阻塞操作。

數學庫函式

blas和lapack是專門為線性代數開發的工具庫。blas英文全稱basic linear algebra subprograms,共有三個層次的計算 向量與向量之間的計算,比如向量的加,減,點乘 向量與矩陣之間的計算,比如乘法運算,一階矩陣和二階矩陣的更新 矩陣與矩陣之間的計算,比如矩陣相乘,k...

6 9數學庫函式

1 真正的數 算的函式定義在 usr include x86 linux gnu bits mathcalls.h 2 使用數學庫函式的時候,只需要包含math.h即可。1 庫函式 double sqrt double x undefined reference to sqrt collect2 e...

C C 數學庫函式

所在函式庫為math.h stdlib.h string.h float.h 1.絕對值 int abs int i 返回整型引數i的絕對值 double cabs struct complex znum 返回複數znum的絕對值 double fabs double x 返回雙精度引數x的絕對值 ...