Linux/Unix C 编程: 标准I/O函数(1) fopen函数,fclose函数

#include <stdio.h>
FILE *fopen(const char* pathname, const char* type);
0fopen函数调用内核open函数取得一个文件描述符,对于open 函数打开文件时,返回的是文件描述符,而对于标准I/O库fopen,对文件操作是用 流 来进行的,当使用fopen打开或创建一个文件时,即为使一个流与一个文件相关联,fopen返回的是FILE结构体的地址,FILE结构体包含有文件描述符,I/O缓冲区,读写位置等信息。

pahtname 为文件路径和文件名的字符串,type 为打开方式,值如下:
r :文件必须已经存在,为读而打开。

r+:文件必须已经存在,为读和写而打开。

w:创建文件或为写打开文件,如果文件存在则会清空原文件内容。

w+: 创建文件或为读和写而打开文件,如果文件存在则会清空原文件内容。

a:追加,即在文件尾加入内容,或为写而创建文件。

a+:在文件尾写内容,或者为读和写而创建文件。

另外,以二进制方式打开文件时,在type中同时加上b,如 rb,r+b,rb+,w+b,ab+等,则以二进制方式进行读写,如果不加b,则以文本方式打开文件。而UNIX环境不区分文本和二进制方式,所以在UNIX下加b并无作用。

int fclose(FILE *fp);

fclose 函数关闭一个流,其调用内核 close 关闭流对应的文件描述符。如果此时I/O缓冲区还有数据,则调用内核 write 写到到文件中,再调用 close,然后释放FILET 缓冲区。当进程终止而没有显示调用fclose时,所有未写入的缓冲区的数据将会被写入,并关闭所有打开的流。

你可能感兴趣的:(编程,C++,c,unix,C#)