Linux高级文件编程 标准C部分笔记
来源:互联网 发布:软件下载吧 编辑:程序博客网 时间:2024/05/21 19:58
AP I/O 笔记
文件
二进制文件 :
文本文件 :
.
.
.
文件的高级操作(stdio.h)
主要是一些 标准C里面的 IO, 里面封装的是一些 LIUNX 的底层文件操作。
高级文件结构体:
typedef struct
{
int _fd; // 文件号
int _cleft; // 缓冲区中剩下的字符数
int _mode; // 文件操作方式
char *_next; // 文件当前读写位置
char *_buff; // 文件缓冲区位置
}FILE;
指针变量说明: FILE *fp;
用法:文件打开时,系统自动建立文件结构体,并把指向它的指针返回来,程序通过这 个指针获得文件信息,访问文件
l
文件关闭后,它的文件结构体被释放
标准 C 函数部分
打开文件fopen :
函数名: fopen
功 能: 打开一个流
用 法: FILE *fopen(char *filename, char *type);
返 值: 正常打开,为指向文件结构体的指针; 打开失败,为 NULL;
char *type:
"r" / "rb" 只读 "r"+ / "rb+"读写
"w" / "wb" 只写"w" / "wb"读写
"a" / "ab" 追加"a" / "ab"读写追加
eg:
打开文件fdopen :
函数名: fdopen
功 能: 将一已打开的文件描述符关联到文件流
用 法: FILE * fdopen(int FD, const char * MODE);
返 值: 成功返回文件指针,失败返回NULL;
eg:
关闭文件fclose :
函数名: fclose
功 能: 关闭一个流
用 法: int fclose(FILE *stream);
返 值: 正常关闭为0; 出错时,非0;
eg:
字符I/O:fputc fgetc
函数名: fputc
功 能: 把一字节代码c写入fp指向的文件中
用 法: int fputc(int ch, FILE *stream);
返 值: 正常,返回c; 出错,为EOF;
eg:
函数名: fgetc
功 能: 从fp指向的文件中读取一字节代码
用 法: int fputc(int ch, FILE *stream);
返 值: 正常,返回读到的代码值;读到文件尾或出错,为EOF;
eg:
字符串I/O:fgets fputs
函数名: fgets
功 能: 从fp指向的文件中读取一个字符串
用 法: char* fgets(char *string, int n, FILE *stream);
返 值: fgets正常时返回读取字符串的首地址;出错或文件尾,返回NULL;
fgets 从 fp 所指文件读n-1个字符送入string 指向的内存区,
并在最后加一个‘\0’
(若读入n-1个字符前遇换行符或文件尾(EOF)即结束)
eg:
函数名: fputs
功 能: 从fp指向的文件中写入一个字符串
用 法: int fputs(char *string, FILE *stream);
返 值: fputs正常时返回写入的最后一个字符;出错为EOF;
eg:
数据块I/O:fread fwrite
函数名: fread
功 能: 从一个流FILE *fp中读数据 到 *buffer
用 法: size_t fread(void *buffer, size_t size, size_t nitems, FILE *fp);
返 值: 成功,返回读的块数;出错或文件尾,返回0;
函数名: fwrite
功 能: 从一个流FILE *fp中读数据 到 *buffer
用 法: size_t fwrite(void *buffer,size_t size, size_t count,FILE *fp);
返 值: 成功,返回写的块数;出错或文件尾,返回0;
说明:
typedef unsigned size_t;
buffer: 指向要输入/输出数据块的首地址的指针
size: 每个要读/写的数据块的大小(字节数)
nitems: 要读/写的数据块的个数
fp: 要读/写的文件指针
fread与fwrite 一般用于二进制文件的输入/输出
格式化I/O:fprintf fscanf
函数名: fprintf
功 能: 按格式对文件进行I/O操作
用 法: int fprintf(FILE *fp,const char *format[,argument,…]);
返 值: 成功,返回I/O的个数;出错或文件尾,返回EOF;
函数名: fscanf
功 能: 按格式对文件进行I/O操作
用 法: int fscanf(FILE *fp,const char *format[,address,…]);
返 值: 成功,返回I/O的个数;出错或文件尾,返回EOF;
几个概念
a.文件位置指针-----指向当前读写位置的指针
b.读写方式
l 顺序读写:位置指针按字节位置顺序移动,叫~
l 随机读写:位置指针按需要移动到任意位置,叫~
文件位置:rewind ftell fseek
函数名: rewind
功 能: 重置文件位置指针到文件开头
用 法: void rewind(FILE *fp);
返 值: 无;
eg:
函数名: ftell
功 能: 返回位置指针当前位置(用相对文件开头的位移量表示)
用 法: long ftell(FILE *fp);
返 值: 成功,返回当前位置指针位置;失败,返回-1L;
eg:
函数名: fseek
功 能: 改变文件位置指针的位置
用 法: int fseek(FILE *fp,long offset,int whence);
返 值: 成功,返回0;失败,返回非0值;
eg:
文件error:ferror clearerr
函数名: ferror
功 能: 测试文件是否出现错误
用 法: int ferror(FILE *fp);
返 值: 未出错,0;出错,非0;
说 明: 每次调用文件输入输出函数,均产生一个新的ferror函数
值,所以应及时测试
l fopen打开文件时,ferror函数初值自动置为0
clearerr函数
函数名: clearerr
功 能: 使文件错误标志置为0
用 法: void clearerr(FILE *fp);
返 值: 无;
说 明: 出错后,错误标志一直保留,直到对同一文件调
clearerr(fp)或rewind或任何其它一个输入输出函数
出错的检测
- Linux高级文件编程 标准C部分笔记
- Linux学习笔记之---标准文件库编程
- Linux-C高级编程(1)文件操作(一)
- Linux-C高级编程(1)文件操作(二)
- Linux C高级编程——文件操作之库函数
- C高级编程笔记一
- C高级编程笔记二
- Linux文件---标准IO编程
- (Linux高级编程)读写文件
- Linux下C编程-----文件操作(1) 通过系统调用简单操作标准输入、标准输出、标准错误
- Linux下C语言高级编程必备!(附多文件编程代码)
- 《UNIX环境高级编程》笔记--无缓存I/O操作和标准I/O文件操作区别
- 《UNIX环境高级编程》笔记0--无缓存I/O操作和标准I/O文件操作区别
- unix环境高级编程 学习笔记5 标准IO库
- 《UNIX环境高级编程》笔记--标准IO缓冲
- Unix下C语言----标准文件编程
- 《C#高级编程第三版》第一部分第一章初稿发布!!!
- JavaScript高级编程(一)-基础部分笔记
- 组合
- 模式识别经常用到的距离测度
- 各式各样的正则表达式参考大全
- unix--文件管理01
- 西南/重庆大学2012年 自考本科生申请学士学位通知
- Linux高级文件编程 标准C部分笔记
- 编码和加解密测试小工具
- 使用Automake 创建和使用静态库/动态库
- H3C背靠惠普冲击高端市场 思科面临新挑战
- 胡思乱想
- 为uboot-2009.08 添加 dnw usb下载功能
- NSArray NSDictionary NSFileManager基本操作
- Asp.Net 传值方式
- 六度好友