Linux檔案操作(ANSI C)

2021-10-05 19:10:40 字數 2600 閱讀 1370

1.檔案指標

ansi檔案操作提供了乙個檔案指標file來進行對檔案的開啟讀寫和關閉及其他訪問;

它的結構體:

typedef

struct

file;

2.緩衝

緩衝目的是為了減少外部裝置的讀寫次數,同時使用緩衝能提高應用程式的讀寫效能

緩衝有三種:全緩衝、行緩衝、不帶緩衝。

全緩衝:填滿才會操作

行緩衝:遇到換行符就操作;

不帶緩衝:直接操作;

設定緩衝的函式:

void

setbuf

(file *fp,

char

*buf)

;int

setvbuf

(file *fp,

char

*buf,

int mode,size_t size)

;

setbuf()函式可以開啟或關閉乙個i/o流使用的緩衝。

setvbuf()函式依靠mode引數實現為i/o流設定指定型別的緩衝:

①_iofbf:全緩衝

②_iolbf:行緩衝

③_ionbf:不帶緩衝

3.開啟、關閉檔案

file *

fopen

(const

char

*path,

const

char

*mode)

;int

fclose

(file *stream)

;

mode模式:

r或rb:唯讀方式,b為二進位制

w或wb:只寫方式,檔案長度置0

a或ab:在檔案結尾新增

r+或r+b或rb+:可讀可寫方式

w+或w+b或wb+:只寫方式,檔案長度置0

a+或a+b或ab+:在檔案結尾讀寫

當開啟檔案成功時,fopen()函式會返回乙個file型別的檔案指標,開啟失敗會返回null。

關閉檔案時,關閉成功返回0,關閉失敗返回eof。

4.讀寫檔案

①乙個字元讀寫操作

讀操作

int

getc

(file *stream)

;int

fgetc

(file *stream)

;int

getchar

(void

);

寫操作

int

putc

(int c,file *stream)

;int

fputc

(int c,file *stream)

;int

putchar

(int c)

;

②一行檔案讀寫操作

讀一行操作

char

*fgets

(char

*s,int size,file *stream)

;char

*gets

(char

)

寫一行操作

int

fputs

(const

char

*s,file *stream)

;int

puts

(const

char

*s);

③成塊資料的檔案讀寫函式

size_t fread

(void

*ptr,size_t size,size_t nmemb,file *stream)

;size_t fwrite

(const

void

*ptr,size_t size,size_t nmemb,file *stream)

;

其中nmemb指的是資料塊數量,size指的是資料塊大小,函式返回值是讀寫成功後,返回讀寫資料塊的個數。

5.檔案流定位

int

fseek

(file *stream,

long offset,

int whence)

;long

ftell

(file *stream)

;void

rewind

(file *stream)

;

其中offset是指位置的偏移,whence有三個值seek_cur表示從當前檔案位置計算offset;seek_end表示從檔案尾開始計算offset;seek_set表示從檔案起始計算offset。ftell()函式返回指定檔案流當前讀寫指標的位置,錯的返回-1;rewind()函式把指定的檔案流讀寫指標設定到最開始的位置。

if you want to be sucessful,you need to be harder.

Linux系統呼叫和ANSI C檔案操作的區別

一 在linux下對檔案操作有兩種方式 linux系統呼叫和ansi c檔案操作。1 linux系統呼叫呼叫常用於i o檔案操作,系統呼叫常用的函式有open close read write lseek ulink等。2 ansi c檔案操作 ansi c檔案操作方法是所有作業系統通用的檔案操作方...

Linux 之 ANSI C庫流檔案操作函式

1 關閉當前執行緒開啟的所有流檔案物件,函式如果執行成功,將返回0,否則返回eof 1 並設定錯誤標識位errno全域性變數。include int fcloseall void 2 通過i o系統呼叫,將緩衝區內容重新整理到磁碟中,函式執行成功,返回0,否則返回eof 1 並設定錯誤標識位errn...

Linux下ANSI C檔案管理

ansi檔案庫封裝了標準的檔案操作函式庫,通過系統呼叫函式可以很方便的對檔案進行操作,並且加入了檔案緩衝機制,提供記錄方式的對寫檔案,具有很好的可移植性,提高了 的健壯性。其主要包括以下幾個方面 1.檔案指標 2.檔案和流之間的關係 3.文字和二進位制 4.檔案的基本操作 1.檔案是乙個可以永久儲存...