您的位置首页>企业动态>

学会用Linux C文件读写函数

导读 大家好,我是极客范的本期栏目编辑小友,现在为大家讲解学会用Linux C文件读写函数问题。C标准库提供的用于读写文件的函数非常多,大多数

音频解说

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解学会用Linux C文件读写函数问题。

C标准库提供的用于读写文件的函数非常多,大多数函数都在stdio.h中声明。

fread/fwrite、fgets/fputs、fgetchar/fputchar、fprintf/fscanf .

这些函数原型声明都在stdio.h中,如下:

size_t fread(void *ptr,size_t size,size _ t nmemb,FILE * stream);

size_t fwrite(const void *ptr,size_t size,size _ t nmemb,FILE * stream);

int fgetc(FILE * stream);

char *fgets(char *s,int大小,FILE * stream);

int getc(FILE * stream);

int getchar(void);

int ungetc(int c,FILE * stream);

无论是写入文件还是从文件流流中读取,都要先打开文件,完成后还要将打开的文件关闭。

为了防止指针变成野指针,还应将文件指针指向空。

文件* fopen(常量字符*路径名,常量字符*模式);

文件*fdopen(int fd,const char *模式);

文件*文件打开(常量字符*路径名,常量字符*模式,FILE *流);

fopen函数的安全版本是fopen _ s(FILE *流,char *文件名,char *模式),使用之前要将宏

fileutil.h

#ifndef __FILEUTIL_H

#define __FILEUTIL_H

#包括

FILE * open _ FILE(常量字符*文件,常量字符*模式);

无效读取0(常量字符*文件);

无效读取1(常量字符*文件);

无效读数2(常量字符*文件);

无效写入1(常量字符*文件);

#endif

fileuTIl.c

/*

*=====================================================================================

*文件名:文件

*描述:

*版本:1.0

*创建时间:2017年年04月13日09时38分23秒

*修订:无

*编译器:海湾合作委员会

*作者:您的姓名(),

*组织:

*=====================================================================================

*/

#包括

#包括

#包括

#包括"fileutil.h"

文件*

open _ file(const char *文件,常量字符*模式)

{

文件* fp

if(!(fp=fopen(文件,模式))){ 0

佩罗(”打开文件错误");

出口(-1);

}

返回FP;

}

无效读取0(常量字符*文件)

{

FILE *fp=open_file(文件,“r”);

char buf[BUFSIZ]={ 0 };

无符号长t=0;

//int tmp=fread(buf,1,20,FP);

//printf("read %d字节\n",tmp);

//printf("从%s读取buf是%s\n”,文件,buf);

while((t=fread(buf,1,192,fp))!=0){

printf("%s\n",buf);

bzero(buf,sizeof(buf));

}

if(fclose(fp)!=0) perror("关闭文件错误");

}

无效读取1(常量字符*文件)

{

FILE *fp=open_file(文件,“r”);

char * buf

size _ t n=0;

while((n=getline(buf,n,fp))!=(size _ t)-1){ 0

printf("%s",buf);

bzero(buf,sizeof(buf));

}

//if(buf)free(buf);

if(fclose(fp)!=0) perror("关闭文件错误");

}

无效读数2(常量字符*文件)

{

FILE *fp=open_file(文件,“r”);

char buf[BUFSIZ]="";

while(fgets(buf,BUFSIZ,FP)){ 0

printf("%s",buf);

bzero(buf,BUFSIZ);

}

if(fclose(fp)!=0) perror("关闭文件错误");

}

无效写入1(常量字符*文件)

{

FILE *fp=open_file(文件,“一个t”);

if(fclose(fp)!=0) perror("关闭文件错误");

}

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。