文件的打开与关闭

简介: 文件的打开与关闭

对于文件的打开与关闭,我们可以通过鼠标来控制!!但是,在我们写代码的时候,总不能来用鼠标来打开关闭文件,并且还能将代码放在那个文件里面吧!因此,我们需要一个文件指针来帮助我们来打开和关闭文件!!


1.文件指针


缓冲文件系统中,关键的概念是“文件类型指针”,简称“文件指针”。 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE.


上述的大致意思就是: 一旦打开文件,在内存中就会开辟一块空间,里面记录相关的信息(如,文件的名字 ;文件的状态,……)而这一块区域,我们叫做:文件信息区!!


在vs2013中,编译环境提供的stdio.h 头文件中有以下的文件的声明:


struct _iobuf {
    char* _ptr;
    int   _cnt;
    char* _base;
    int   _flag;
    int   _file;
    int   _charbuf;
    int   _bufsiz;
    char* _tmpfname;
};

typedef struct _iobuf FILE;

在上述的代码中,是一个文件指针:typedef struct _iobuf FILE;并且重命名为:FILE   因此,我们就能直接使用FILE这个指针了!!


不同的C编译器的FILE类型包含的内容不完全相同,但是大同小异。


每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息, 使用者不必关心细节。


一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。


下面我们可以创建一个FILE*的指针变量:


FLIE* pf ;  //文件指针变量

定义pf是一个指向FILE类型数据的指针变量。可以使pf指向某个文件的文件信息区(是一个结构体变 量)。通过该文件信息区中的信息就能够访问该文件。也就是说,通过文件指针变量能够找到与它关联 的文件。


0a2653c851af460fa595bd959398a8f1.png


上面我们简单的介绍了一下FILE的由来与使用,下面笔者将进入:文件的打开与关闭的方式上:


文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。


在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指 针和文件的关系。


ANSIC 规定使用fopen函数来打开文件,fclose来关闭文件。


//打开文件
FILE * fopen ( const char * filename, const char * mode );
//关闭文件
int fclose ( FILE * stream );

在打开文件的操作过程中:


const char * filename  :是指文件名!!


const char * mode   : 这个是指:文件的打开方式!!


举列一下:


#include <stdio.h>
int main()
{
  FILE* pf = fopen("tset.txt", "w");
}

经过上面的代码的运行,我们就可以清晰的看到:


2d65d23f6d4748949b924e4057485923.png


因此,这样就是成功的创建并打开了这个文件!!


6de278e6d6694ce5bb08e7e842b7e74b.png


当文件成功打开的话,会返回一个地址,当文件打开失败的话,会返回一个NULL(空指针),所以,需要对返回值进行判断!!


下面请看一下笔者的完美打开关闭文件的简单代码:


int main()
{
  //打开文件
  FILE* pf = fopen("test.txt", "w");
  if (NULL == pf)
  {
  perror("fopen");
  return 1;
  }
  //写文件!
  //具体内容不再写了!
  //关闭文件
  fclose(pf);
  pf = NULL;  //手动置空(NULL)
  return 0;
}

上述内容,则为正确的打开文件的操作!!要切记:一定要对指针进行是否为空指针的判断!!


下面简述几种文件的打开操作:


12c3b7f3f8814309a195c64f051d4445.png


更多关于文件的精彩内容,请详见笔者后续更新!本文就先到此为止!!


相关文章
|
7月前
|
程序员 C语言
文件的打开和关闭
文件的打开和关闭
82 1
|
7月前
|
Java 程序员 C语言
打开与关闭文件
打开与关闭文件
94 1
|
7月前
关闭文件
关闭文件。
44 2
|
7月前
|
网络协议 Linux 网络安全
linuxCentOS 6 7打开关闭端口命令
linuxCentOS 6 7打开关闭端口命令
79 0
|
7月前
|
C语言 Python
编程中打开和关闭文件
编程中打开和关闭文件
45 0
|
7月前
文件的打开关闭
文件的打开关闭。
83 0
|
编译器 数据库 C++
C/C++之文件操作————文件的打开与关闭
C/C++之文件操作————文件的打开与关闭
127 0
|
域名解析 缓存 网络协议
如何打开DNSSEC?
DNS(域名系统)类似于Internet的电话簿:它告诉计算机在哪里发送信息,在什么地方搜索信息。遗憾的是,它也接受因特网提供给它的任何地址,这并不成问题。
429 0
如何打开DNSSEC?
|
存储 开发者 Python
文件的打开和关闭 | 学习笔记
快速学习 文件的打开和关闭
114 0
文件的打开和关闭 | 学习笔记
|
网络协议 测试技术 Go
打开文件和关闭文件 | 学习笔记
快速学习打开文件和关闭文件