linux应用程序开发-文件编程-库函数

本文详细介绍了C库文件操作的基本概念、常见模式、读写函数、字符读写函数、格式化读写函数以及文件定位和路径获取等核心内容,并提供了相应的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---恢复内容开始---

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

 

转载于:https://www.cnblogs.com/summer-xwq/p/4161970.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值