檔案操作 模擬cp複製功能原始碼 檔案非同步讀寫

2021-07-15 16:44:32 字數 2173 閱讀 5692

1.模擬cp複製功能

2.flock實現非同步讀寫

flock(鎖定檔案或解除鎖定)

表頭檔案 #include

定義函式 int flock(int fd,int operation);

函式說明 flock()會依引數operation所指定的方式對引數fd所指的檔案做各

種鎖定或解除鎖定的動作。此函式只能鎖定整個檔案,無法鎖定文

件的某一區域。

引數 operation有下列四種情況:

lock_sh 建立共享鎖定。多個程序可同時對同乙個檔案作共享鎖

定。lock_ex 建立互斥鎖定。乙個檔案同時只有乙個互斥鎖定。

lock_un 解除檔案鎖定狀態。

lock_nb 無法建立鎖定時,此操作可不被阻斷,馬上返回程序。通

常與lock_sh或lock_ex 做or(|)組合。

單一檔案無法同時建立共享鎖定和互斥鎖定,而當使用dup()或fork

()時檔案描述詞不會繼承此種鎖定。

返回值 返回0表示成功,若有錯誤則返回-1,錯誤**存於errno。

testone.c

1 #include 2 #include 3 #include 4 #include 5 #include 6 

7 #define buffersize 4096

8 #define copymode 0644

9 10 int main(int argc,char * argv)

11 20

23 int cnt = 10;

24 while(cnt)

25

42 if(close(fd) == -1)

43 printf("closing files error!\n");

44 }

testtwo.c

1 #include 2 #include 3 #include 4 #include 5 #include 6 

7 #define buffersize 4096

8 #define copymode 0644

9 10 int main(int argc,char * argv)

11 20

23 int cnt = 10;

24 while(cnt)

25

42 if(close(fd) == -1)

43 printf("closing files error!\n");

44 }

執行結果:

Spring檔案上傳功能原始碼剖析

spring預設提供了檔案上傳的功能。用起來非常簡單,我們也可以使用第三方的如apache的commonsupload包來處理。這裡我們使用spring自帶的解析。1 在spring配置中,加上multipartresolver介面的bean。bean name conditionalo singb...

Android簡訊功能原始碼方法

android系統提供了intent方法,來實現簡訊介面的呼叫。使用startactivity 啟動了了簡訊功能後,簡訊介面就會呈現在使用者面前。開發其他應用程式用此方法,就顯得不太合理。在這裡總結使用原始碼來完成簡訊傳送任務,很多 都來自網上,在這裡,我僅做了點封裝。由於在msm簡訊是在後台傳送的...

C 實現更改IP功能原始碼

public changeip cortrol ipaddr list subnetmask list public void changeto string ipaddr,string subnetmask cortrol ipaddr list subnetmask list gateway l...