- 2
- 0
- 约9.24千字
- 约 9页
- 2017-03-29 发布于湖北
- 举报
标准I/O函数(32)
这些函数除mktemp外的头文件都是stdio.h
函数分类基本操作:fclose, fopen, freopenfread, fwrite读写位置相关函数:fseek, fsetpos, rewindfgetpos, ftellfeof读取和写入:fgetc, fgets, getc, getchar, gets, ungetcfputc, fputs, putc, putchar, puts文件流指针和文件描述词相互转换:fdopen, fileno设置缓冲区:setbuf, setbuffer, setlinebuf, setvbuf建立临时文件:mktemp, tmpfile其他:fflushclearerr
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.hint 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.hint main(void){char s[80];/* 从标准输入设备
原创力文档

文档评论(0)