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

参考技术A

fopen返回的是打开的文件指针,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函数的返回值是多少?的主要内容,如果未能解决你的问题,请参考以下文章

php中fopen函数的返回值是啥啊?

若执行fopen函数时发生错误,则函数的返回值是()。

C语言中的fopen函数的具体实现是怎么样?

fopen()函数

fopen参数介绍

fopen参数介绍