linux應用程式開發 檔案程式設計 庫函式

2022-05-04 20:51:07 字數 2944 閱讀 5047

---恢復內容開始---

c庫函式檔案操作獨立於具體的系統平台,可移植性較好。

庫函式-建立和開啟

file*fopen(const char*filename,const char*mode)

mode:開啟模式

常見的開啟模式:

r,rb:唯讀方式開啟

w,wb: 只寫方式開啟,如果檔案不存在,則建立該檔案

a,ab:追加方式開啟,如果檔案不存在,則建立該檔案

r+,r+b,rb+:讀寫方式開啟

w+,w+b,wh+:讀寫方式開啟,如果檔案不存在,則建立該檔案

a,a+b,ab+:讀和追加方式開啟,如果檔案不存在,則建立該檔案

b用於區分二進位制檔案和文字檔案,這一點在dos,window中區分,linux不區分二進位制檔案盒文字檔案。

庫函式-讀

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

從stream指向的檔案中讀取n個字段,每個欄位為size位元組,並將讀取的資料放入ptr所指的字元陣列中,返回實際讀取的位元組數。

庫函式-寫

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

讀字元:

int fgetc(file*stream);

---恢復內容結束---

c庫函式檔案操作獨立於具體的系統平台,可移植性較好。

庫函式-建立和開啟

file*fopen(const char*filename,const char*mode)

mode:開啟模式

常見的開啟模式:

r,rb:唯讀方式開啟

w,wb: 只寫方式開啟,如果檔案不存在,則建立該檔案

a,ab:追加方式開啟,如果檔案不存在,則建立該檔案

r+,r+b,rb+:讀寫方式開啟

w+,w+b,wh+:讀寫方式開啟,如果檔案不存在,則建立該檔案

a,a+b,ab+:讀和追加方式開啟,如果檔案不存在,則建立該檔案

b用於區分二進位制檔案和文字檔案,這一點在dos,window中區分,linux不區分二進位制檔案盒文字檔案。

讀size_t fread(void*ptr,size_t size,size_t n,file *stream);

寫:size_t fwrite(void*ptr,size_t size,size_t n,file *stream);

讀字元int fgetc(file*stream);

舉例:#include

main()

file*fp;

char ch;

if((fp=fopen("c1.txt","rt"))==null)

printf("\ncannot open file strike any key exit");

getch();

exit(1);

ch=fgetc(fp);

while(ch!=eop)

putchar(ch);

ch=fgetc(fp);

fclose(fp);

寫字元int fputs(inyt c,file*stream)

舉例:#include

main()

file*fp;

char ch;

if((fp=fopen("string","w+"))==null)

printf("\ncannot open file ,strike any key exit");

getch();

exit(1);

printf("input a string:\n");

ch=fgetchar();

while(ch!='\n')

fputc(ch,fp);

ch=getchar();

printf("\n");

fclose(fp);

格式化讀:

fscanf(file*stream,char*format[,argument...])

從乙個流中格式化輸入

#include

#include

int mian(void)

int i;

printf("input an interger:");

if(fscanf(stdin,"%d",&i))

printf("the integer read was:%i\n",i);

格式化寫:

fprintf(file*stream,char*format[,argument...])

格式化輸出從到乙個流中

#include

#include

file*stream;

int mian(void)

int i=10;

double fp=1.5;

char s="this is a string";

char c='\n';

stream=fopen("fprintf.out",""w);

fprintf(stream,"%s%c",s,c);

fprintf(stream,"%d\n",i);

fprintf(stream,"%f\n",fp);

fclose(stream);

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

whence:

seek_set

seek_cur

seek_end

路徑獲得:

char*getcwd(char*buffer,size_t size);

把路徑copy到buffer中,buffer如果太小,返回-1;

建立目錄:

int  mkdir(char*dir,int mode);

0返回成功,-1表示出錯。

程式開發檔案儲存相關

這類檔案當我們刪除應用之後,還應該保留在手機上的,例如拍照的 不應該隨著刪除應用而被刪除掉。對於這類檔案,android給我們提供了特定的目錄,這些目錄都是以directory開頭的,例如 directory music directory pictures.訪問這些資料夾有兩種方式 第一種 fil...

linux開發 檔案監控 inotify

從linux 2.6.13開始引入inotify來監控檔案,代替舊的dnotify。因此舊版本的glibc並不提供inotify系統呼叫的封裝。標頭檔案 sys inotify int inotify init 建立乙個inotify例項,並返回乙個引用inotify例項檔案描述符,檔案描述符使用c...

程式開發檔案共享NFS解析

root unsion2 rpm aq grep nfs nfs utils 1.2.3 54.el6.x86 64 nfs4 acl tools 0.3.3 6.el6.x86 64 nfs utils lib 1.1.5 9.el6.x86 64 root unsion2 rpm aq grep...