标准库中的函数,类型以及宏在下面的标准头文件中定义:
<assert.h> <float.h> <math.c> <stdarg.h> <stdlib.h>
<ctype.h> <limits.h> <setjmp.h> <stddef.h> <string.h>
<errno.h> <locale> <signal.h> <stdio.h> <time.h>
<stdio.h>:
该头文件中定义的输入和输出函数、类型以及宏的数目几乎占整个标准库的三分之一。
流:是与磁盘或其它外围设备关联的数据的源或目的地。
文本流:由文本行组成的序列,每一个行包含0个或多个字符,并以‘\n’结尾。
二进制流:由未经过处理的字节构成的序列。
程序开始执行时,stdin、stdout和stderr这三个流已经处于打开状态。
FILE* fopen(const char* filename, const char* mode)
此函数打开filename指定的文件,并返回一个与之相关联的流,打开失败返回NULL;
访问模式(mode):
“r”:以读方式打开文本文件。
“w”:以写方式打开文件文本。
“a”:追加;打开或者新建一个文本文件,并向文件末尾追加内容。
“r+”:打开文本文件用于更新(读和写)。
“w+”:打开或者新建文本文件用于更新,并删除原有内容。
“a+”:追加:打开或者新建文本文件用于更新,并向末尾追加内容。
后面三种方式可以对同一个文件操作,但在读和写的交叉过程中,必须调用fflush函数
或者文件定位函数。
FILE* freopen(cosnt char* filename, const char* mode,FILE* stream)
此函数指定模式打开文件,并将文件关联到指定的流,返回stream;出错返回NULL;一般用于改变与stdin、stdout和stderr相关的文件。
int fflush(FILE* stream)
对输出流来说,fflush函数将已写到缓存区但没有写入文件的所有数据写入文件。失败返回EOF否则返回0.fflush(NULL)将清洗所有的输出流。
int fclose(FILE* stream)
将所有没写入的数据写入stream,丢弃缓存区的所有未读输入数据,并释放自动分配的缓存区,最后关闭流;出错返回EOF,否则返回0。
int remove(const char* filename)
删除指定的文件,删除失败返回一个非0值。
int rename(const char* oldname, const char* newname)
修改文件的名称,失败返回非0值。
FILE* tmpfile(void)
该函数以“w+b”模式新建一个临时文件,程序结束时,自动删除;创建成功返回一个流,失败返回NULL。
int setvbuf(FILE* stream, char* buf,int mode, size_t size)
该函数控制流的缓冲;在执行读、写以及其他任何操作之前必须调用此函数。当模式的值为_IOFBF时,将进行完全缓冲;模式为IOLBF时,将对文件进行缓冲;当模式为_IONBF时表示不缓冲,表示不设置缓冲。如果buf的值不是NULL,则函数将buf指向的区域作为流的缓冲区,否则将分配一个缓冲区,size表示缓冲区的长度。函数操作失败,返回一个非0值。
void setbuf(FILE* stream, char* buf)
如果buf为NULL,则关闭流的缓冲;否则setbuf函数等价于
(void)setvbuf(stream, buf,_IOFBF, BUFSIZ).
本文出自 “落幕知客” 博客,请务必保留此出处http://zheng2048.blog.51cto.com/10612048/1786641
原文地址:http://zheng2048.blog.51cto.com/10612048/1786641