C语言文件函数详解
C语言是一种广泛使用的编程语言,它提供了丰富的文件操作函数,用于处理文本文件和二进制文件,本文将详细介绍C语言中的文件函数,包括文件的打开、关闭、读写等操作。
1、文件指针
在C语言中,文件操作是通过文件指针来实现的,文件指针是一个指向FILE类型的指针变量,通过调用fopen()函数来创建,当文件操作完成后,需要调用fclose()函数来关闭文件指针。
2、文件打开函数fopen()
fopen()函数用于打开一个文件,其原型为:
FILE *fopen(const char *filename, const char *mode);
参数说明:
- filename:要打开的文件名,可以是相对路径或绝对路径。
- mode:文件打开模式,如只读、写入、追加等,常用的模式有:
- "r":只读模式(默认值)
- "w":写入模式,如果文件存在则覆盖,不存在则创建新文件
- "a":追加模式,如果文件存在则在末尾追加内容,不存在则创建新文件
- "r+":读写模式,可以读取和写入文件
- "w+":读写模式,可以读取和写入文件,如果文件存在则覆盖,不存在则创建新文件
- "a+":追加读写模式,可以读取和写入文件,如果文件存在则在末尾追加内容,不存在则创建新文件
返回值:成功打开文件时返回一个非空的文件指针,失败时返回NULL。
3、文件关闭函数fclose()
fclose()函数用于关闭一个已打开的文件,其原型为:
int fclose(FILE *stream);
参数说明:
- stream:要关闭的文件指针。
返回值:成功关闭文件时返回0,失败时返回EOF。
4、文件读写函数fread()和fwrite()
fread()函数用于从文件中读取数据,其原型为:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
参数说明:
- ptr:指向接收数据的缓冲区的指针。
- size:每个数据元素的大小。
- count:要读取的数据元素个数。
- stream:要读取数据的文件指针。
返回值:成功读取数据时返回实际读取的元素个数,失败时返回0。
fwrite()函数用于向文件中写入数据,其原型为:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
参数说明:
- ptr:指向要写入数据的缓冲区的指针。
- size:每个数据元素的大小。
- count:要写入的数据元素个数。
- stream:要写入数据的文件指针。
返回值:成功写入数据时返回实际写入的元素个数,失败时返回0。
5、文件定位函数fseek()和rewind()、ftell()
fseek()函数用于改变文件的当前读写位置,其原型为:
int fseek(FILE *stream, long offset, int origin);
参数说明:
- stream:要改变位置的文件指针。
- offset:相对于origin位置的偏移量,正数表示向前移动,负数表示向后移动,origin可以是以下三个值之一:
- SEEK_SET:相对于文件开头偏移(默认值)
- SEEK_CUR:相对于当前位置偏移
- SEEK_END:相对于文件结尾偏移
- 返回值:成功改变位置时返回0,失败时返回非0值。
rewind()函数用于将文件的当前读写位置重置到文件开头,其原型为:
void rewind(FILE *stream);
参数说明:stream是要重置位置的文件指针,无返回值。
发表评论