open系列是 posix 定義的,是unix系統裡的system call,只能用在 posix 的作業系統上。使用open系列函式需要"#include ".
基於檔案描述符的輸入輸出函式:
open:開啟乙個檔案,並指定訪問該檔案的方式,呼叫成功後返回乙個檔案描述符。
creat:開啟乙個檔案,如果該檔案不存在,則建立它,呼叫成功後返回乙個檔案描述符。
close:關閉檔案,程序對檔案所加的鎖全都被釋放。
read:從檔案描述符對應的檔案中讀取資料,呼叫成功後返回讀出的位元組數。
write:向檔案描述符對應的檔案中寫入資料,呼叫成功後返回寫入的位元組數。
ftruncate:把檔案描述符對應的檔案縮短到指定的長度,呼叫成功後返回0。
lseek:在檔案描述符對應的檔案裡把檔案指標設定到指定的位置,呼叫成功後返回新指標的位置。
fsync:將所有已寫入檔案中的資料真正寫到磁碟或其他下層裝置上,呼叫成功後返回0。
fstat:返回檔案描述符對應的檔案的相關資訊,把結果儲存在struct stat中,呼叫成功後返回0。
fchown:改變與開啟檔案相關聯的所有者和所有組,呼叫成功後返回0。
fchmod:把檔案描述符對應的檔案的許可權位改為指定的八進位制模式,呼叫成功後返回0。
flock:用於向檔案描述符對應的檔案施加建議性鎖,呼叫成功後返回0。
fcntl:既能施加建議性鎖也能施加強制性鎖,能建立記錄鎖、讀取鎖和寫入鎖,呼叫成功後返回0。
dup:複製檔案描述符,返回沒使用的檔案描述符中最小的編號。
dup2:由使用者指定返回的檔案描述符的值,用來重新開啟或重定向乙個檔案描述符。
select:同時從多個檔案描述符讀取資料或向多個檔案描述符寫入資料。
檔案描述符的優點:相容posix標準,許多系統呼叫都依賴於它。
檔案描述符的缺點:不能移植到unix以外的系統上去,也不直觀。
1)write
#include
size_t write(int fildes,const void *buf,size_t nbytes);
引數說明:
fildes:與檔案相對應的檔案描述符,可通過呼叫open函式獲取
buf:存放將寫入檔案的資料,可以是字串,也可是其他資料。其中buf是指向字串的指標
nbytes:需寫進檔案的位元組數
返回值:
-1:寫入失敗
0:寫入0個位元組
x:已寫入x個位元組
2)read
#include
size_t read(int fildes,char *buf,size_t nbytes);
引數說明:
fildes:檔案描述符
buf:存放從檔案中讀取的資料
nbytes:希望讀取的直接數
返回值:
-1:讀取失敗
0:讀取0個位元組
x:已讀取x個位元組
3)open
引數說明:
path:檔案存放路徑;
oflags:開啟方式。取值如下:
o_rdonly:以唯讀方式開啟,o_wronly:以只寫方式開啟,o_rdwr:以讀寫方式開啟
oflages引數中還包括下列可選模式的組合(用按位或操作)
o_trunc:把檔案長度設為0,丟棄已有的內容
o_creat:如果需要,就按引數mode中給出的訪問模式建立檔案
o_excl:已o_creat一起使用,確保呼叫者建立出檔案
4)close
#include
int close(int fildes);
引數:fildes:檔案描述符
返回:success:0
fail:-1
Linux系統wait 和waitpid 函式
include include pid t wait int status 程序一旦呼叫了wait,就立即阻塞自己,由wait自動分析是否當前程序的某個子程序已經退出,如果讓它找到了這樣乙個已經變成殭屍的子程序,wait就會收集這個子程序的資訊,並把它徹底銷毀後返回 如果沒有找到這樣乙個子程序,wa...
Python企業編碼生成系統之系統主要函式設計詳解
mkdir函式實現 建立資料夾函式 def mkdir path i ists os.path.exists path 判斷資料夾路徑是否存在 if not i ists 如果資料夾路徑不存在 os.mkdir path 建立要建立的資料夾 openfile函式實現 讀取檔案內容函式 def ope...
WaitForSingleObject函式的使用
程式舉例 1 建立對話方塊應用程式,專案名稱為mytestthread 2 新增按鈕,命名為啟動和停止,在對話方塊中增加編輯框,id為idc time,3 增加成員變數,handle m hthread 2 此為執行緒的控制代碼 4 定義全域性變數,用來控制線程的執行與否 volatile bool...