linux_c 網絡開發日記(3)庫函數訪問文件

庫函數訪問文件



c庫函數的文件操作是獨立於具體的操作系統平臺上的,不管是DOS,windows、還是linux 還是在vxwork 中都是這些函數。(用庫函數訪問文件,可移植性高


庫函數-創建和打開

FILE *fopen(const cahr*filename,const cahr*mode)
filename:打開的文件名(包含路徑,缺省爲當前路徑)
mode:打開模式
常見打開模式
r,rb:只讀方式打開
w,wb:只寫方式打開,如果不存在,則創建該文件
a,ab:追加方式打開,如果
r+,r+b, rb+:讀寫方式打開
w+,w+b,wh+:讀寫方式打開如不過不存在則創建該文件
a+,a+b,ab+:讀寫和追加的方式打開,如果不存在,則創建該文件


b用於區分二進制文件和文本文件,linux系統不區分二進制文件和文本文件。DOS,和windows有區分。


庫函數-讀

size_t fread(void *ptr,size_t size,size_t n,FILE *stream)
功能:從stream指向的文件中讀取n個字段,每個字段爲size字節,並將讀取的數據放入ptr縮值得字符數組中,返回實際已讀取的字節數。

庫函數-寫

size_t fwrite(const void *ptr,size_t size,size_t n,FILE*stream)
功能:從緩衝區ptr所指向的數組中吧n個字段寫到stream指向的文件中,每個字長爲size個字節,返回實際寫入的字段數。


int fgetc(FILE *stream):從指定文件讀取一個字符
int fputc(int c,FILE*stream):向指定文件寫一個字符
fscanf(FILE *stream,char *format[argument...]):從一個流中進行格式化輸入
int fprintf(FILE *stream,char* format[argument]):格式化輸出到一個流中。


庫函數-定位

int fseek(FILE *stream,long offset,int whence
whence:
SEEK_SET:從頭搜索
SEEK_CUR:當前位置搜索
SEEK_END:結尾處開始搜素


路徑獲取:



char *getcwd(cahr *buffer,size_t size)
我們提供一個size大小的buffer,getcwd會把當前的路徑名copy到buffer中,如果buffer太小,函數會返回-1.
eg:
#include<stdio.h>


main()
{
char buf[80];
getcwd(buf,sizeof(buf));
printf("current working directory:%s/n",buf);
}


創建目錄

#include<sys/stat.h>


   int mkdir(char *dir,int mode)


功能:創建一個新目錄
返回值:0表示成功,-1表示出錯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章