Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291247
  • 博文数量: 109
  • 博客积分: 2116
  • 博客等级: 大尉
  • 技术积分: 1062
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-22 15:38
文章分类

全部博文(109)

文章存档

2013年(2)

2011年(16)

2010年(90)

2009年(1)

我的朋友

分类: LINUX

2010-12-20 20:34:34


要调用一个文件,需要有以下信息:文件当前的读写信息;与该文件对应的读写缓冲区的地址;缓冲区中未被处理的字符数;文件操作方式等。缓冲区系统为每一个文件开辟一个“文件信息区”,用来存放以上这些信息。这个信息区在内存中,是一个结构体变量。其形式为:

typedef struct  {

        short           level;          /* fill/empty level of buffer */

        unsigned        flags;          /* File status flags    */

        char            fd;             /* File descriptor      */

        unsigned char   hold;           /* Ungetc char if no buffer */

        short           bsize;          /* Buffer size          */

        unsigned char   *buffer;        /* Data transfer buffer */

        unsigned char   *curp;          /* Current active pointer */

        unsigned        istemp;         /* Temporary file indicator */

        short           token;          /* Used for validity checking */

}  FILE;                           /* This is the FILE object */

       上面结构体的成员用来存放以上信息的数据项。对FILE的定义是在stdio.h投文件中有系统事先指定。

      请注意:FILE不是结构体变量名,它是用typedef定义的新类型名。只要程序用到一个文件,系统就为此文件开辟一个如上的结构体变量。有几个文件,就开辟几个这样的结构体变量,分别用来存放各个文件的有关信息。这些结构体变量不用变量名来标识,而设置一个指向该结构体变量的指针量,通过它来访问该结构体变量。例:

FILE  *fp1*fp2

定义文件型指针变量的一般形式为:

        FILE  *变量名;



标准输入输出流
#include

extern FILE *stdin;
extern FILE *stdout;
extern FILE *stderr;


1.stdin
*0; 
    //标准文件描述符;
*标准输入流;

2.stdout
*1;
*标准输出流;

3.stderr
*2;
*标准错误输出流

阅读(547) | 评论(0) | 转发(0) |
0

上一篇:LINUX系统调用

下一篇:文件系统

给主人留下些什么吧!~~