用於檔案系統的C庫函式

2022-01-15 11:33:10 字數 2337 閱讀 5091

9/20/2017 學1.開啟

file *fopen(const

char *path , const

char * mode);

fopen實現開啟指定的檔案filename,mode指開啟的形式,c語言中開啟的形式種類如下:

b用於開啟二進位制檔案而非文字檔案,這是dos、windows下的情況。在linux中不區分二進位制檔案和文字檔案。

同時注意,標誌都是const char * 型別,即都是字串字面值,需要用到雙引號,寫成fopen(」1.txt" , r); 是錯誤的。

由於fopen();的返回值是file *型別,所以利用乙個相同型別的物件如fp去標識fopen();,即fp標識目標檔案。之後對fp的操作即是對目標檔案的操作。  

2.讀寫

支援字串、字元等單位進行讀寫檔案。

int fgetc(file *stream);

int fputc(int c, file *stream);

char *fgets(char *s, int n, file *stream);

int fputs(const

char *s, file *stream);

int fprintf(file *stream, const

char *format, ...);

int fscanf (file *stream, const

char *format, ...);

size_t fread(

void *ptr, size_t size, size_t n, file *stream);

size_t fwrite (

const

void *ptr, size_t size, size_t n, file *stream);

fread();:實現從流stream中讀出n個字段,每個字段長size個位元組,並將n個字段放入名為ptr的字元陣列中,返回實際讀取的字段數。

fwrite();:實現從緩衝區ptr所指的陣列中把n個字段寫入流stream,每個字段長size個位元組,返回實際寫入的字段數。

fputs();:實現了把字串寫入流stream中。引數s是乙個陣列,包含了以'\0'為結尾的字串行。引數stream是指向file物件的指標,該物件標識了要被寫入的流。返回值:成功的話返回乙個非負值,失敗的話返回乙個eof。

注意如果要實現output功能,需要用乙個字串陣列儲存內容並輸出,fputs();是向檔案中」ouput「,即寫入檔案,並非輸出檔案。

3.定位

int fgetpos(file *stream, fpos_t *pos);

int fsetpos(file *stream, const fpos_t *pos);

int fseek(file *stream, long offset, int whence);

返回值:成功返回0,否則返回非0。

用法如下:

#include int

main ()

建立乙個檔案file.txt,並以讀寫的方式開啟,首先使用fgetpos();獲取檔案的初始位置,寫入「hello, world!",然後使用fsetpos();重置為檔案頭的位置。再寫入」這將覆蓋之前的內容「,實現內容的覆蓋。最終輸出」浙江覆蓋之前的內容「。

4.關閉

int fclose(file *stream);
關閉流stream,重新整理緩衝區。引數stream是file物件的指標,該物件指定了要被關閉的流。

返回值:成功關閉返回0,失敗返回eof。

例程:編寫乙個程式,在當前目錄下建立使用者可讀寫檔案「hello.txt」,在其中寫入「hello, software weekly」,關閉該檔案。再次開啟該檔案,讀取其中的內容並輸出在螢幕上。

1 #include 2

#define length 10034

intmain()

5

14 fp = fopen("

hello2.txt

" , "r"

);

15fgets(str , length , fp);

16 printf("

%s\n

", str);

17return0;

18 }

output:bw98@ubuntu:~/practice/project3$ ./2

hello,software weekly

檔案I O之C標準庫函式和系統庫函式差別

1.首先c標準庫函式是工作在系統庫函式之上的。c標準庫函式在讀寫檔案時候都有乙個檔案流指標。file fp null fp fopen f path,r fp檔案流指標,其指向結構體例如以下圖所看到的。檔案描寫敘述符指向磁碟檔案。在進行檔案讀寫操作時候是先讀寫到緩衝區。然後再呼叫系統應用層api w...

C 標準庫函式之用於排序的sort函式

排序和查詢可以說是計算機領域最經典的問題了,而c 標準庫在標頭檔案algorithm中已經內建了基於快速排序的函式sort,只需呼叫這個函式,就可以輕易地完成排序。下面簡要介紹sort函式 sort first,last,comp 函式有三個引數 1.first 待排序序列的起始位址 2.last ...

檔案系統 stat函式

stat函式主要用於獲取檔案的inode資訊。stat命令其實就是呼叫的stat函式。1 chmod 777 stat 1.txtstat之後發現ctime變了。改變了檔案的許可權,檔案許可權儲存在inode裡面。2 vim stat 1.txt什麼都不做,看一下退出。stat後發現atime變了。...