c語言的底層操作方法

2021-09-08 22:06:59 字數 1510 閱讀 8988

1.函式名:setvbuf

功 能: 把緩衝區與流相關

用 法: 

int setvbuf(file *stream, char *buf, int type, unsigned size);

引數:stream :指向流的

指標 ;

type : 期望緩衝區的型別:

_iofbf(滿緩衝):當緩衝區為空時,從流讀入資料。或者當緩衝區滿時,向流寫入數 據。

_iolbf(行緩衝):每次從流中讀入一行資料或向流中寫入一行資料。

_ionbf(無緩衝):直接從流中讀入資料或直接向流中寫入資料,而沒有緩衝區。

size : 緩衝區內位元組的數量。

2.函式名:fcntl

功能:用來操作

檔案描述符的一些特性。fcntl 不僅可以施加建議性鎖,還可以施加強制鎖。同時,fcntl還能對檔案的某一記錄進行上鎖,也就是記錄鎖。

用法:int fcntl(int fd, int cmd); 

int fcntl(int fd, int cmd, long arg); 

int fcntl(int fd, int cmd, struct flock *lock);

引數:(1)fd 是被引數cmd操作(如下面的描述)的描述符.(2)cmd代表打算操作的指令:取值有

f_dupfd用來查詢大於或等於引數arg的最小且仍未使用的檔案描述詞,並且複製引數fd的檔案描述詞。。

f_getfd取得close-on-exec

旗標。若此旗標的fd_cloexec位為0,代表在呼叫exec()相關函式時檔案將不會關閉。

f_setfd 設定close-on-exec 旗標。該旗標以引數arg 的fd_cloexec位決定。

f_getfl 取得檔案描述詞狀態旗標,此旗標為open()的引數flags。

f_getlk 取得檔案鎖定的狀態。

f_setlk 設定檔案鎖定的狀態。此時flcok 結構的l_type 值必須是f_rdlck、f_wrlck或f_unlck。如果無法建立鎖定,則返回-1,錯誤**為eacces 或eagain。

f_setlkw f_setlk 作用相同,但是無法建立鎖定時,此呼叫會一直等到鎖定動作成功為止。若在等待鎖定的過程中被訊號中斷時,會立即返回-1,錯誤**為eintr。

(3)引數lock指標為flock 結構指標

3.函式名:tcgetattr

用法:int tcgetattr(int fd, struct termios *termios_p);

引數:引數fd為終端的

檔案描述符,返回的結果儲存在

termios

結構體中,該結構體一般包括如下的成員:

tcflag_t c_iflag;

tcflag_t c_oflag;

tcflag_t c_cflag;

tcflag_t c_lflag;

cc_t c_cc[nccs];

String操作方法底層實現!!!

以下 純屬個人寫著玩。為了加深理解和熟悉字串提供的方法的思路。但是我發現我寫完之後還是忘了。沒啥鳥用。分享給大家指點。大家說如果面試的話,讓面試者寫乙個字串底層方法實現思路。是否能快速寫出來。charat 方法 功能 返回指定位置的字元 引數 傳遞乙個下標 官方使用 var str abcdefg ...

linux中斷底層硬體操作方法

linux中斷底層硬體操作方法 joee33 每一條中斷線都有乙個底層硬體操作函式集struct irq chip 大多數控制方法都是重複的 基本上只要有 中斷響應 中斷遮蔽 中斷開啟 中斷觸發型別設定等方法就可以滿足要求了。其他各種方法基本上和這些相同。這些操作方法的實現在檔案linux arch...

C 的DataTable操作方法

1.將泛型集合類轉換成datatable 表中無資料時使用 public static datatable nulllisttodatatable ilist list for var i 0 i list.count i var array templist.toarray result.load...