学会用LinuxC文件读写函数

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

fread/fwri     te   ,fgets/fputs,fgetchar/fputchar,fprintf/fs     can   f.。..。..。..。..

这些函数原型声明都在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 size, FILE *stream);

int getc(FILE *stream);

int getchar(void);

int ungetc(int c, FILE *stream);

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

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

FILE *fopen(const char *pathname, const char *mode);

FILE *fdopen(int fd, const char *mode);

FILE *freopen(const char *pathname, const char *mode, FILE *stream);

fopen函数的安全版本是fopen_s(FILE *stream,char *filename,char *mode),使用之前要将宏

fileu     ti   l.h

#ifndef __FILEU  TI L_H

#define __FILEU  TI L_H

#include

FILE *open_file(const char *file,const char *mode);

void read0(const char *file);

void read1(const char *file);

void read2(const char *file);

void write1(const char *file);

#endif

fileu  TI l.c

/*

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

* Filename: fileu  TI l.c

* Description:

* Ve     rs   ion: 1.0

* Created: 2017年04月13日 09时38分23秒

* Revision: none

* Com     pi   ler: gcc

* Author: YOUR NAME (),

* Organization:

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

*/

#include

#include

#include

#include “fileutil.h”

FILE *

open_file(const char *file,const char *mode)

{

FILE *fp;

if(!(fp = fopen(file,mode))){

perror(“open file error”);

exit(-1);

}

return fp;

}

void read0(const char *file)

{

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

char buf[BUFSIZ] = {0};

unsigned long t = 0;

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

//printf(“read %d bytes\n”,tmp);

//printf(“read buf f     rom   %s is %s\n”,file,buf);

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

printf(“%s\n”,buf);

bzero(&buf,sizeof(buf));

}

if(fclose(fp) != 0) perror(“close file error”);

}

void read1(const char *file)

{

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

char *buf;

size_t n = 0;

while((n = getline(&buf,&n,fp)) != (size_t)-1){

printf(“%s”,buf);

bzero(buf,sizeof(buf));

}

//if(buf) free(buf);

if(fclose(fp) != 0) perror(“close file error”);

}

void read2(const char *file)

{

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

char buf[BUFSIZ] = “”;

while(fgets(buf,BUFSIZ,fp)){

printf(“%s”,buf);

bzero(buf,BUFSIZ);

}

if(fclose(fp) != 0) perror(“close file error”);

}

/* 尚未实现 */

void write1(const char *file)

{

FILE *fp = open_file(file,“a+t”);

if(fclose(fp) != 0) perror(“close file error”);

}

学会用LinuxC文件读写函数_设计制作_RF/无线
47
143
0
69

相关资讯

  1. 1、U盘出现权限不足怎么办?3721
  2. 2、Win101909开机密码怎么重置?Win10专业版开机密码重置教程2191
  3. 3、阿里旺旺怎么修改密码?阿里旺旺修改密码的方法2411
  4. 4、如何开启系统检测悬浮窗?腾讯电脑管家开启或关闭系统检测悬浮窗2337
  5. 5、腾讯电脑管家如何关闭开机自启?关闭腾讯电脑管家自动启动2371
  6. 6、快读小说阅读器用不了怎么办?无法使用快读小说阅读器的解决方法3392
  7. 7、火狐浏览器怎么关闭自动更新?火狐浏览器关闭自动更新的方法3843
  8. 8、Excel乘法运算三种方法867
  9. 9、凤凰新闻怎么关闭视频自动连播?五个步骤教你轻松关闭!1634
  10. 10、升级了鸿蒙系统怎么卸载鸿蒙系统?5013
全部评论(0)
我也有话说
0
收藏
点赞
顶部