9/20/2017 學1.開啟
file *fopen(constfopen實現開啟指定的檔案filename,mode指開啟的形式,c語言中開啟的形式種類如下:char *path , const
char * mode);
b用於開啟二進位制檔案而非文字檔案,這是dos、windows下的情況。在linux中不區分二進位制檔案和文字檔案。
同時注意,標誌都是const char * 型別,即都是字串字面值,需要用到雙引號,寫成fopen(」1.txt" , r); 是錯誤的。
由於fopen();的返回值是file *型別,所以利用乙個相同型別的物件如fp去標識fopen();,即fp標識目標檔案。之後對fp的操作即是對目標檔案的操作。
2.讀寫
支援字串、字元等單位進行讀寫檔案。
int fgetc(file *stream);fread();:實現從流stream中讀出n個字段,每個字段長size個位元組,並將n個字段放入名為ptr的字元陣列中,返回實際讀取的字段數。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);
fwrite();:實現從緩衝區ptr所指的陣列中把n個字段寫入流stream,每個字段長size個位元組,返回實際寫入的字段數。
fputs();:實現了把字串寫入流stream中。引數s是乙個陣列,包含了以'\0'為結尾的字串行。引數stream是指向file物件的指標,該物件標識了要被寫入的流。返回值:成功的話返回乙個非負值,失敗的話返回乙個eof。
注意如果要實現output功能,需要用乙個字串陣列儲存內容並輸出,fputs();是向檔案中」ouput「,即寫入檔案,並非輸出檔案。
3.定位
int fgetpos(file *stream, fpos_t *pos);返回值:成功返回0,否則返回非0。int fsetpos(file *stream, const fpos_t *pos);
int fseek(file *stream, long offset, int whence);
用法如下:
#include int建立乙個檔案file.txt,並以讀寫的方式開啟,首先使用fgetpos();獲取檔案的初始位置,寫入「hello, world!",然後使用fsetpos();重置為檔案頭的位置。再寫入」這將覆蓋之前的內容「,實現內容的覆蓋。最終輸出」浙江覆蓋之前的內容「。main ()
4.關閉
int fclose(file *stream);關閉流stream,重新整理緩衝區。引數stream是file物件的指標,該物件指定了要被關閉的流。
返回值:成功關閉返回0,失敗返回eof。
例程:編寫乙個程式,在當前目錄下建立使用者可讀寫檔案「hello.txt」,在其中寫入「hello, software weekly」,關閉該檔案。再次開啟該檔案,讀取其中的內容並輸出在螢幕上。
1 #include 2output:bw98@ubuntu:~/practice/project3$ ./2#define length 10034
intmain()
5
14 fp = fopen("
hello2.txt
" , "r"
);
15fgets(str , length , fp);
16 printf("
%s\n
", str);
17return0;
18 }
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變了。...