加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux下普通IO文件操作函数---C语言

发布时间:2020-12-14 02:08:04 所属栏目:Linux 来源:网络整理
导读:普通文件IO总结 FILE结构体 ? ? typedef struct ? { ? ? ? int level; /*填充/清空一级缓存*/ ? ? unsigned flag; /*文件状态指针*/ ? ? char fd; /*文件描述符*/ ? ? unsigned char hold; /*ungetc char if no buffer*/ ? ? int bsize; /*缓存区大小*/ ? ?

普通文件IO总结

FILE结构体

 ? ?typedef struct 
? { ?
? ? int level; /*填充/清空一级缓存*/
? ? unsigned flag; /*文件状态指针*/
? ? char fd; /*文件描述符*/
? ? unsigned char hold; /*ungetc char if no buffer*/
? ? int bsize; /*缓存区大小*/
? ? unsigned char *buffer; /*数据缓冲区*/
? ? unsigned char *curp; /*当前活动指针*/
? ? unsigned istemp; /*临时文件指示器*/
? ? short token; /*用于有效性检查*/
? }FILE; ?

打开文件fopen函数

文件指针名=fopen(文件名,使用文件方式)

eg:

FILE *fp;    //文件指针
fp=("file a","r"); //以只读方式打开hzk16

打开方式有:

描述符 意义
“rt”       只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”       读写打开一个二进制文件,允许读,或在文件末追加数据

fopen若过出错则,返回一个NULL可以用作错误异常处理的判断条件;

fclose函数

用于关闭当前文件 fclose(FILE*);返回值为0表示正确,非零错误。

文件读写操作:

·字符读写函数 :fgetc和fputc ·

字符串读写函数:fgets和fputs ·

数据块读写函数:freed和fwrite ·

格式化读写函数:fscanf和fprinf

fgetc(FILR*) 与 fputc(const char,FILE*) / fputc(char,FILE*):

fgetc每次在文件中读一个字节,每读一次,文件内的字符指针往后挪一位,可多次重复使用依次读出文件内容。

fput函数每次写入一个字符,每写一次文件内指针向后挪动一位,可多这次连续使用,依此写入。

fgets(char* buf,int n,FILE*)与fputs(char* buf,FILE*):

从文件中读出 n-1 个字符放入buf中

fputs将字符串写入文件中

fread(cahr* buf,int size,int count,FILE* fp)与fwrite(char* buf,FILE* fp)

fread 从fp中读入conut个size长度的字符串到buf中

fwirte从buf中读出count个size个长度的字符串到fp中

fscanf(FILE*,格式,列表)和 fprintf(FILE*,列表)

eg:

fprintf(fp,"%s %d %d %s",pp->name,pp->num,pp->age,pp->addr);
?
fscanf(fp,qq->name,&qq->num,&qq->age,qq->addr);

rewind(FILE*)

将文件内部指针移到文件首

fseek(FILE* fp,int count,int startpoint)

fp 文件指针

count 位移量,表示从startpoint开始计算位移量

startpoint有三种形式:

起始点 表示符
SEEK—SET     0
当前 SSEEK-CUR 1
SSEEK-END 2

小点:

stdin 0 标准输入

stdout 1 标准输出

stderr 2 标准错误

_IONBF 无缓冲

_IOLBF 行缓冲

_IOFBF 全缓冲

_IO_LINE_BUF 行缓冲

_IO_UNBUFFERED 无缓冲

对IO普通文件操作整理,有错误请指出;

参考:http://www.cnblogs.com/whiteyun/archive/2009/08/08/1541822.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读