LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1163|回复: 2

关于FILE类型的定义,找到了libio.h中的_IO_FILE,但没看懂他有哪一些成员?

[复制链接]
发表于 2006-9-18 00:26:54 | 显示全部楼层 |阅读模式
为什么libio.h中的定义是:
struct _IO_FILE;
??

成员呢 ?

另外问一下,怎么从stdio.h中知道_IO_FILE是定义在libio.h中的?
发表于 2006-9-18 14:58:24 | 显示全部楼层
在本文件中找不到的当然去他引入的文件中找啦
[/usr/include>]grep include stdio.h
# include <features.h>
# include <stddef.h>
# include <bits/types.h>
#include <libio.h>
#  include <stdarg.h>
#include <bits/stdio_lim.h>
#include <bits/sys_errlist.h>
# include <getopt.h>
# include <bits/stdio.h>
#endif /* <stdio.h> included.  */


struct _IO_FILE 不是有定义吗
深入的研究偶也看不懂。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2006-9-21 16:39:36 | 显示全部楼层
libc,或者glibc中的定义是分层次的。
不管是变量名还是函数名,都是用同一种机制命名的。
最高层的命名就是我们可以在libc以外应用的,比如size_t, u_char 之类的。
低一层的是只能在libc里面使用,便于libc的开发者的。比如 _size_t , _u_char等等。
最低层就是为了适应不同的平台,不同的操作系统定义的。比如 __size_t , __u_char等等。

一般都有这种:
typedef __u_char _u_char
...
typedef _u_char u_char
...
之类的语句在头文件中,如果想知道具体的类型定义,grep -r  ... 一下就可以看到了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表