C库文件操作函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C库文件操作函数相关的知识,希望对你有一定的参考价值。

标准库中的函数,类型以及宏在下面的标准头文件中定义:

<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

以上是关于C库文件操作函数的主要内容,如果未能解决你的问题,请参考以下文章

socket.h这个文件怎么找不到呢?

C库文件操作函数

C语言文件IO操作的一些其它函数

C语言 文件操作7--文件错误处理

C语言文件操作<二;

C 语言文件操作 ( remove 函数删除文件 | rename 函数重命名文件 | 代码示例 )