fopen和fclose函数的返回值是多少?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fopen和fclose函数的返回值是多少?相关的知识,希望对你有一定的参考价值。
fopen和fclose函数的返回值是多少?
1、fopen函数的返回值,返回指向该流的文件指针,如果文件打开失败,则返回NULL,并将错误代码存储在errno中。
FILE*input;
input = fopen("data3", "r");
if (NULL == input)
perror("data3");
exit(EXIT_FAILURE);
2、fclose函数没有返回值
fclose()功能:关闭一个流
头文件:#include<stdio.h>
扩展资料
使用fclose函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>//exit函数的头文件
int main()
FILE*fp=fopen("myfile","w+");
if(NULL==fp)
perror("fopen");
exit(1);
const char*msg="hello\\n";
int count = 5;
while(count--)
fwrite(msg,1,strlen(msg),fp);
fclose(fp);//fopen之后记得fclose
return 0;
参考资料来源:百度百科—fopen
参考资料来源:百度百科—fclose
参考技术Afopen返回的是打开的文件指针,fclose返回值是0或者(-1)。
fopen()文件顺利打开后,返回指向该流的文件指针,如果文件打开失败,则返回NULL,并将错误代码存储在errno中。
fclose()成功关闭可返回0,否则返回EOF(-1)。
扩展资料:
fopen的;其功能是使用给定的模式 mode 打开 filename 所指向的文件。文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL,并把错误代码存在 error 中。该函数位于C 标准库<stdio.h>中。
fclose功能是关闭一个流。使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区。
函数原型:int fclose( FILE *fp ),如果流为NULL,而且程序可以继续执行,fclose设定error number给EINVAL,并返回EOF。
参考资料来源:百度百科-fopen
参考资料来源:百度百科-fclose
参考技术B fopen返回的是打开的文件指针。fclose没有返回值。 参考技术C fopen()文件顺利打开后,返回指向该流的文件指针,如果文件打开失败,则返回NULL,并将错误代码存储在errno中。
fclose()成功关闭可返回0,错误返回EOF并把错误存储在errno中。本回答被提问者采纳
fopen(),fclose() 打开/关闭文件
打开/关闭/刷新流
1. fopen() 打开流
功能:
1)fopen()打开由 path指定的一个文件。
2)fdopen()获取一个先有的文件描述符,并使一个标准的I/O流与该描述相结合。此函数常用于由创建管道和网络通信函数小所返回的描述符。因为这些特殊类型的文件不能用标准I/O fopen函数打开,我们必须先调用设备专用函数以获得一个文件描述符,然后用fopen使一个标准I/O流与该描述符相关联。
3)fropen()在一个指定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流。若流已经定向,这fopen清除该定向。吃函数一般用于将一个指定的文件代开为一个预定流,如:标准输入、标准输出和标准错误。
所需头文件:<stdio.h>
函数原型:
FILE *fopen(const char *path, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
FILE *fdopen(int fd, char *mode);
参数:
fopen: path 将要的打开的指定文件的绝对路径; mode 文件打开的方式。
freopen: path 要重定向的文件绝对路径,mode 文件打开方式, stream 已经打开的流。
fdopen:fd 已经打开的文件描述符, mode 文件打开方式。
返回值:
成功:流指针 失败:NULL
参数mode:
r,rb:以只读方式打开文件,文件必须已经存在
对应文件I/O:open(path, O_RDONLY);
r+,rb+:以读写方式打开文件,文件必须存在
w,wb:以只写方式打开文件,若文件存在,则将该文件内容清空;若文件不存在,则创建文件。
w+,wb+:以读写方式打开文件,若文件存在,则将该文件内容清空;若文件不存在,则创建文件。
a,ab:以追加方式只写打开文件,若文件不存在,则创建文件;若文件存在,写入的数据会被追加到文件末尾,文件原先的内容保留。
a+,ab+:以追加方式可读写打开文件,若文件不存在,则创建文件;若文件存在,写入的数据会被追加到文件末尾,文件原先的内容保留。
frepen()重定向使用示例
1 #include <stdio.h> 2 int main(int argc, char *argv[]) 3 { 4 FILE *fp; 5 if (argc < 2) 6 { 7 fprintf("Usage:%s filename\n", argv[0]); 8 return -1; 9 } 10 freopen(argv[1], "w", stdout); //将标准输入重定向为argv[1]所指定的文件。 11 fprintf("after freopen!\n"); 12 return 0; 13 } 14 输出结果将在argv[1]指定的文件中
2. fclose()关闭流
功能:关闭一个文件流
所需头文件 <stdio.h>
函数原型:
int fclose(FILE *fp);
参数:
fp :要关闭的流。
返回值:
调用成功返回0;失败返回EOF并设置errno
值得注意的是,fclose()在关闭流之前,会先将缓冲区里的数据输出,如果标准I/O库已经为该流分配了一个缓冲区,则释放缓冲区。
当一个进程正常终止时(直接调用exit()函数<_exit()终止的进程不会刷新流>,或从main函数返回),则所有带有未写缓存数据的标准I/O都会被刷新,所有代课的标准I/O都被关闭。
3. 刷新流
功能:强制刷新一个流。此函数使该流所有未写的数据都被传递到内核。
函数原型:
int fflush(FILE *fp);
参数:
fp:要刷新的流。
以上是关于fopen和fclose函数的返回值是多少?的主要内容,如果未能解决你的问题,请参考以下文章