C语言 标准I/O库函数 fopen()、fread()、fwrite()、fclose()

C语言 标准I/O库函数 fopen()、fread()、fwrite()、fclose()它就是C语言的标准IO库,在标准IO库中,与底层文件描述符相对应的是流,它被实现为指向结构FILE的指针。

大家好,欢迎来到IT知识分享网。

标准I/O库

有过C编程经历的人都会知道stdio头文件,它就是C语言的标准IO库,在标准IO库中,与底层文件描述符相对应的是流,它被实现为指向结构FILE的指针。IO库的函数有很多,为了与前面的内容对应,这里还是只讲与前面四个函数相对应的函数,其他的函数,你可以查一查手册页。

A、fopen库函数

fopen库函数的原型为:

FILE* fopen(const char *filename, const char *mode);

它与底层系统调用open类似,成功时返回一个非空指针。失败时返回NULL。

B、fread库函数

fread库函数的原型为:

size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream);

它与底层调用read相似,其作用是从stream读取nitems个长度为size的数据到ptr所指向的缓冲区中。返回值是成功读到缓冲区中的记录个数。

注:stream为用fopen函数返回的文件结构指针。

C、fwrite库函数

fwrite库函数的原型:

size_t fwrite(const void *ptr, size_t size, size_t nitems, FILE *stream);

它与底层调用write相似,其作用是从ptr指向的缓冲区中读取nitems个长度为size到数据,并把它们写到stream所对应的文件中。

D、fclose库函数

fclose库函数的原型为:

int fclose(FILE *stream);

它与系统调用close相似,其作用是关闭指定的文件流stream。

例子

同样地,下面是前一个例子的另一个实现版本,它实现的功能与先前的例子一样,不过使用的是标准I/O库,而不是系统调用,文件名为copy_stdio.c代码如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

int c = 0;

FILE *pfin = NULL;

FILE *pfout = NULL;

// 以只读方式打开数据文件

pfin = fopen(“Data.txt”, “r”);

// 以只写方式打开复制的新文件

pfout = fopen(“copy_stdio.out.txt”, “w”);

// 读数据

while (fread(&c, sizeof(char), 1, pfin))

{

//写数据

fwrite(&c, sizeof(char), 1, pfout);

}

// 关闭文件流

fclose(pfin);

fclose(pfout);

return 0;

}

当然这里你也可以用其他的库函数来完成工作,如:用fgetc代替fread,用fputc代替fwrite等。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/80850.html

(0)
上一篇 2024-08-27 15:33
下一篇 2024-08-31 20:26

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信