嵌入式應用開發學習筆記 高階IO

2021-10-17 14:47:41 字數 1757 閱讀 5105

檔案鎖分為建議性鎖和強制性鎖

記錄鎖又可分為讀取鎖和寫入鎖

int fcntl(int fd, int cmd);

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

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

返回值:成功0,出錯-1,錯誤原因存於errno

根據cmd引數的不同,fcntl函式有5種功能:

1)複製乙個現有的描述符(cmd = f_dupfd)

2)獲得/設定檔案描述符標記(cmd = f_getfd或f_setfd)

3)獲得/設定檔案狀態標誌(cmd = f_getfl或f_setfl)

4)獲得/設定非同步i/o所有權(cmd = f_getown或f_setown)

5)獲得/設定記錄鎖(cmd = f_getlk,f_setlk或f_setlkw)

flock的結構體定義

struct flock

例程:

lock_set.c檔案

#include

2 #include

3 #include

4 #include

5 #include

6 #include

7 #include "lock_set.h"89

intlock_set

(int fd,

int type)

1025

else

if(lock.l_type == f_wrlck)

2629}30

31 lock.l_type = type;

3233if(

fcntl

(fd, f_setlkw,

&lock)

<0)

3438

switch

(lock.l_type)

3953

54}

fcntl_rd.c檔案

1 #include 

2 #include

3 #include

4 #include

56 #include "lock_set.h"78

intmain

(void)9

17lock_set

(fd, f_rdlck);18

getchar()

;1920lock_set

(fd, f_unlck);21

getchar()

;2223close

(fd);24

return0;

25}

fcntl_wr.c檔案

#include

2 #include

3 #include

4 #include

5 #include

6 #include "lock_set.h"78

intmain

(void)9

17lock_set

(fd, f_wrlck);18

getchar()

;19lock_set

(fd, f_unlck);20

getchar()

;2122close

(fd);23

return0;

24}

嵌入式應用開發學習筆記 檔案IO

最近在學習嵌入式應用程式設計,這裡用來記錄一些學習筆記,希望對自己有所幫助!檔案模式是檔案屬性之一,佔16bit 訪問許可權佔9bit,即rwx rwx rwx,修飾位佔3bit,檔案型別佔4bit 命令 umask設定新建檔案的許可權,umask是新建立檔案 目錄應關閉許可權的位掩碼 命令 chm...

嵌入式開發學習

始於興趣,因興趣而精緻 對於很多人聽到嵌入式這個詞的時候,會感覺到有些迷茫,嵌入式到底和常見的硬體電路學習,軟體程式設計,物聯網等有什麼區別?學習嵌入式到底按照怎樣的乙個思路才能最快的進入狀態,領略嵌入式之美,怎樣才能正確進行興趣匹配實現自己的學習目標。接下來,就讓我簡單的介紹一下我對嵌入式學習的理...

嵌入式學習筆記

嵌入式系統定義 技術角度以應用為中心,以計算機技術為基礎,軟硬體可裁剪,應用系統對功能,可靠性,成本,體積,功耗,和應用環境有特殊要求的專用計算機系統系統角度 設計完成複雜功能的硬體和軟體並使其緊密契合在一起的計算機系統 實時在規定的時間內,完成規定的動作 紅帽linux 基本命令 ls 檢視當前目...