在進行linux的學習過程中,我們會接觸到一系列與io操作相關的函式。一般而言,我們將其分為三類,分別是:
檔案io、標準io和庫函式。
其中,檔案io顧名思義便是對檔案進行操作的函式,再加上在linux系統中,一切皆檔案,所以當我們在之後的時間內進行更加深入的學習之後,檔案io的操作函式將會使用的越來越多。所以,今天,我們首先從將從常見的檔案io函式開始進行學習。
首先來看下面一段**,我們用fopen開啟檔案然後進行寫操作,完畢之後fclose關閉檔案。檔案io操作的一般流程就是這樣。
#include
#include
intmain()
const
char
*msg =
"hello bit!\n"
;int count =5;
while
(count--
)fclose
(fp)
;return0;
}
file *
fopen
(char
*filename,
char mode)
;
返回值:返回乙個檔案流指標作為檔案操作控制代碼。
引數一:需要開啟的檔名稱
引數二:開啟方式
開啟方式就是以某種方式開啟檔案,有以下幾種:
r唯讀 r+讀寫 w只寫 w+讀寫 a追加寫 a+追加讀寫 b二進位制操作
size_t fread
(char
*buf, size_t block_size, size_t block_count, file *fp)
;size_t fwrite
(char
*data, size_t block_size, size_t block_count, file *fp)
;
塊大小*塊個數為操作的位元組數。
返回值:一般返回實際操作的塊個數。
注意:fread讀取完緩衝取會返回0;
int
fseek
(file *fp,
long offset,
int whence)
;
作用:跳轉檔案讀寫位置。將檔案讀寫指標從whence位置偏移offset個位元組。
返回值:偏移的位元組數
引數一:檔案流指標
引數二:偏移的位元組數
引數三:讀寫指標的起始位置
int
fclose
(file *fp)
;
作用:關閉讀寫指標釋放資源。
庫函式封裝了系統呼叫io介面,因此使用庫函式會使我們的程式設計更加方便。但是系統呼叫接**們也應該了解,這樣才能對檔案io有更加深刻的理解。
我們對open/read/write/lseek/close這幾個介面進行講解。作用與庫函式基本相同不加贅述。
int
open
(char
* filename,
int flag, mode_t mode)
;
引數一:要開啟的檔名稱
引數二:檔案的開啟方式,有以下幾種
引數三:當檔案不存在建立之後,需要設定建立檔案的許可權,mode&(~umask)或者直接umask(0).
返回值:返回檔案描述符, 失敗返回-1.
ssize_t write
(int fd,
char
* data, size_t len)
;ssize_t read
(int fd,
char
* buf, size_t len)
;
off_t lseek
(int fd, off_t offset,
int whence)
;
引數一:檔案描述符
引數二:偏移量
引數三:從**開始偏移,seek_set起始位置/seek_cur當前讀寫位置/seek_end檔案末尾.
返回值:返回當前位置相對於起始位置的偏移量,失敗返回-1.
int
close
(int fd)
;
關閉檔案描述符釋放資源。 2 標準庫 自有基礎庫與 delog模組
include intmain int argc,char ar define ndebugint isalnum int c include include intmain int argc,char ar 以統一這類操作的實現和利用方式。關於通過常量表進行字元類別檢測的具體方法,2.2節展開討論...
Python基礎 標準庫
1 獲取現在的時間 import time 要使用庫就必須要引入 獲取本地時間,返回的時間的結構體,不是很直觀 t local time.localtime 獲取utc世界統一時間,返回的時間的結構體,不是很直觀 t utc time.gmtime 這個方法返回本地時間的字串,看起來就比較直觀 ti...
Python 基礎 標準庫
python 標準庫 python standrad library 中包含了大量有用的模組,同時也是每個標準的 python 安裝包中的一部分。熟悉 python 標準庫十分重要,因為只要你熟知這些庫可以做到什麼事,許多問題都能夠輕易解決。我們將探索這個庫中的一些常用模組。你能在你的 python...