标准IO函数剖释.docVIP

  • 2
  • 0
  • 约9.24千字
  • 约 9页
  • 2017-03-29 发布于湖北
  • 举报
标准I/O函数(32) 这些函数除mktemp外的头文件都是stdio.h 函数分类 基本操作: fclose, fopen, freopen fread, fwrite 读写位置相关函数: fseek, fsetpos, rewind fgetpos, ftell feof 读取和写入: fgetc, fgets, getc, getchar, gets, ungetc fputc, fputs, putc, putchar, puts 文件流指针和文件描述词相互转换: fdopen, fileno 设置缓冲区: setbuf, setbuffer, setlinebuf, setvbuf 建立临时文件: mktemp, tmpfile 其他: fflush clearerr clearerr: 清除文件流的错误旗标 头文件: stdio.h 函数定义: void clearerr(FILE *stream); 说明: clearerr()清除参数stream指定的文件流所使用的错误旗标. fclose: 关闭文件 头文件: stdio.h 函数定义: int fclose(FILE *stream); 说明: fclose()用来关闭先前fopen()打开的文件. 此动作会让缓冲区内的数据写入文件中, 并释放系统所提供的文件资源. 若成功则返回0, 有错误发生时则返回EOF并把错误代码存到errno. EBADF表示参数stream非已打开的文件. fdopen: 将文件描述词转化为文件指针 头文件: stdio.h 函数定义: FILE *fdopen(int fildes, const char *mode); 说明: fdopen()会将参数fildes的文件描述词, 转换为对应的文件指针后返回. 参数mode字符串则代表这文件指针的流形态, 此形态必须和原先文件描述词读写模式相同. 关于mode字符串格式请参考fopen(). 若成功则返回指向该流的文件指针, 失败则返回NULL, 并把错误代码存到errno. 应用举例: #include stdio.h int main(void) { FILE *fp; /* 将标准输出设备的文件描述词0, 转为可写入的文件指针 */ fp = fdopen(0, r+); if(fp != NULL) { ?? fprintf(fp, %s\n, hello); } return 0; } 运行结果: hello feof: 检查文件流是否读到了文件尾 头文件: stdio.h 函数定义: int feof(FILE *stream); 说明: feof()用来检测是否读到了文件尾, 参数steam为fopen()所返回的文件指针. 如果已到文件尾则返回非0值, 其他情况返回0. fflush: 更新缓冲区 头文件: stdio.h 函数定义: int fflush(FILE *stream); 说明: fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中. 如果参数stream为NULL, fflush()会将所有打开的文件数据更新. 成功返回0, 失败返回EOF, 错误代码存于errno中. EBADF参数stream指定的文件未被打开, 或打开状态为只读. 其它错误代码参考write(). fgetc: 由文件中读取一个字符 头文件: stdio.h 函数定义: int fgetc(FILE *stream); 说明: fgetc()用来从参数stream所指的文件中读取一个字符, 读取位置加1. 成功会返回读取到的字符, 若读到文件尾而无数据可读时返回EOF. fgetpos: 读取文件流的读取位置 头文件: stdio.h 函数定义: int fgetpos(FILE *stream, fpos_t *pos); 说明: fgetpos()和ftell()一样都是用来取得文件流目前的读写位置. 参数stream为已打开的文件指针. 读写位置会利用参数pos指针返回. 成功返回0, 有错误返回-1, 错误代码存于errno中. fgets: 读取文件中的一个字符串 头文件: stdio.h 函数定义: char *fgets(char *s, int size, FILE *stream); 说明: fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间中, 直到出现换行字符, 读到文件尾或是已读了size-1个字符为止, 最后会加上NULL作为字符串结束. 成功返回s指针, 错误返回NULL. 应用举例: #include stdio.h int main(void) { char s[80]; /* 从标准输入设备

文档评论(0)

1亿VIP精品文档

相关文档