基礎IO Linux與標準庫下的檔案IO操作

2021-10-08 06:32:54 字數 2276 閱讀 1293

在進行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...