当前位置: 技术问答>linux和unix
请问关于文件的打开和关闭
来源: 互联网 发布时间:2016-11-12
本文导语: 在linux环境下输入以下代码 #include int main() { FILE * fp; /定义文件变量指针/ if((fp=fopen("4-9file","a++"))==NULL) /打开(创建)文件/ { printf("wrong"); /出错处理/ exit(0); } fclose(fp); /关闭流文...
在linux环境下输入以下代码
#include
int main()
{
FILE * fp; /定义文件变量指针/
if((fp=fopen("4-9file","a++"))==NULL) /打开(创建)文件/
{
printf("wrong"); /出错处理/
exit(0);
}
fclose(fp); /关闭流文件/
}
(1)第一次运行程序的时候,创建了文件4-9file(此文件原来没有的)
第二次运行程序的时候,我并没有看到打开文件4-9file,这是怎么回事呢?
(2)exit(0)所查的资料显示:进程错误退出。如果是错误退出,那么进程退出后会不会继续执行fclose语句呢?还是整个程序已经结束了呢?
(3)其实我把fclose(fp)删除后,执行(1)中的所说的那样,结果好像没有什么不同呀?这又是为什么呢?
谢谢
#include
int main()
{
FILE * fp; /定义文件变量指针/
if((fp=fopen("4-9file","a++"))==NULL) /打开(创建)文件/
{
printf("wrong"); /出错处理/
exit(0);
}
fclose(fp); /关闭流文件/
}
(1)第一次运行程序的时候,创建了文件4-9file(此文件原来没有的)
第二次运行程序的时候,我并没有看到打开文件4-9file,这是怎么回事呢?
(2)exit(0)所查的资料显示:进程错误退出。如果是错误退出,那么进程退出后会不会继续执行fclose语句呢?还是整个程序已经结束了呢?
(3)其实我把fclose(fp)删除后,执行(1)中的所说的那样,结果好像没有什么不同呀?这又是为什么呢?
谢谢
|
fopen()的第二个参数好像没有a++这么一个参数,好像是a+,如果是用a+手册是这么写的,
Open for reading and appending(writing at end of file).The file is created if it does not exist.The stream is positiioned at the end of file.
第二个问题,如果应用程序执行exit退出程序,内核会自动调用fclose函数。
第三个问题,如果你把fclose删除了,应用程序运行到此位置时也就结束了,那么内核会自动调用fclose的。
如果应用程序没的结束的,这个文件流是一直被打开的。
Open for reading and appending(writing at end of file).The file is created if it does not exist.The stream is positiioned at the end of file.
第二个问题,如果应用程序执行exit退出程序,内核会自动调用fclose函数。
第三个问题,如果你把fclose删除了,应用程序运行到此位置时也就结束了,那么内核会自动调用fclose的。
如果应用程序没的结束的,这个文件流是一直被打开的。