linux應用程式開發-檔案編程-庫函數

來源:互聯網
上載者:User

標籤:io   ar   os   sp   for   on   檔案   資料   bs   

---恢複內容開始---

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<stdio.h>

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<stdio.h>

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<stdlib.h>

#include<stdio.h>

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<stdlib.h>

#include<process.h>

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表示出錯。

 

linux應用程式開發-檔案編程-庫函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.