第二節 系統函式拓展

2021-08-20 18:29:53 字數 1924 閱讀 7640

1,dup:影印檔案描述符(複製多乙個檔案描述符出來)

#include int dup(int oldfd);

由系統自動給你分配乙個

int dup2(int oldfd, int newfd);

自己指定乙個檔案描述符newfd

#define _gnu_source /* see feature_test_macros(7) */

#include /* obtain o_* constant definitions */

#include int dup3(int oldfd, int newfd, int flags);

新建程序的時候,多家乙個flags判斷,這個flags只能新增o_cloexec,代表新建程序的時候關閉這個檔案描述符

oldfd:舊的檔案描述符

newfd:指定的新檔案描述符

函式返回值:

成功返回分配的檔案描述符,失敗返回-1,errno會被設定

2,memset:往指定的記憶體填充某個資料

#include void *memset(void *s, int c, size_t n);

s:指定的記憶體

c:填入的內容

n:指定記憶體的大小

返回值:返回s

3, bzero:指定記憶體清0

#include void bzero(void *s, size_t n);

s:指定的記憶體

n:指定記憶體的大小

4,fcntl:檔案屬性控制

#include #include int fcntl(int fd, int cmd, ... /* arg */ );

fd:需要控制的檔案描述符

cmd:控制的內容是什麼

f_dupfd (int):

影印檔案描述符,後面的引數是需要指定對映的檔案描述符

類似於dup2

f_dupfd_cloexec:類似於dup3,對映檔案描述符的時候新增多乙個關閉標誌位fd_cloexec(也就是open函式中的o_cloexec)

f_getfd (void):獲取檔案描述符的程序關閉標誌位

f_setfd (int):設定檔案描述符的程序關閉標誌位

f_getfl (void):獲取開啟檔案的操作標誌位狀態(open裡面的flags)

f_setfl (int):設定檔案中的操作標誌位狀態

不課使用的有:o_rdonly, o_wronly, o_rdwr,o_creat, o_excl, o_noctty, o_trunc

5,mmap:記憶體對映

將乙個裝置或者是一段物理記憶體直接對映成為乙個虛擬記憶體中的位址,可以直接引用

#include void *mmap(void *addr, size_t length, int prot, int flags,

int fd, off_t offset);

int munmap(void *addr, size_t length);

length:長度為多長(建議以頁為單位)

prot:操作許可權:

prot_exec pages may be executed.:執行許可權

prot_read pages may be read. :讀取

prot_write pages may be written.:寫入

prot_none pages may not be accessed.:無許可權

flags:操作標誌位

map_shared:記憶體共享

map_private:記憶體私有

fd:需要對映的檔案描述符

offset:基於原本的位置上是否需要偏移

函式第二節

coding utf 8 1.定義乙個方法get num num num引數是列表型別,判斷列表裡面的元素為數字型別。其他型別則報錯,並且返回乙個偶數列表 注 列表裡面的元素為偶數 def get num l l for i in l 判斷列表l的元素是否都為整形 if not isinstance...

Python函式 第二節 呼叫函式

所謂abs 即絕對值 print abs 2 print abs 1.111111111111 print abs 1 e anaconda3 anaconda python.exe f seven.py 21.111111111111 1process finished with exit cod...

彙編 第二節

第二節 cpu主要有有運算器,控制器,暫存器,三部分組成 8086 cpu有14個暫存器,如ax,bx,cx,dx,si。8086所有暫存器都是16位的,可以存放2個byte即位元組,16位二進位制數 所能存放的最大數值是 11111111111 2 16 1 從0開始,所以 1嘛 通用暫存器為4個...