LinuxSir.cn,穿越时空的Linuxsir!

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

这段程序是什么意思

[复制链接]
发表于 2006-3-13 17:42:45 | 显示全部楼层 |阅读模式
typedef struct _xf86_file_ {
        INT32        fileno;
        INT32        magic;
        FILE*        filehnd;
        char*        fname;
} XF86FILE_priv;

XF86FILE_priv stdhnd[3] = {
        { 0, XF86FILE_magic, NULL, "$stdinp$" },
        { 0, XF86FILE_magic, NULL, "$stdout$" },
        { 0, XF86FILE_magic, NULL, "$stderr$" }
};

XF86FILE* xf86stdin = (XF86FILE*)&stdhnd[0];
XF86FILE* xf86stdout = (XF86FILE*)&stdhnd[1];
XF86FILE* xf86stderr = (XF86FILE*)&stdhnd[2];

/////
#define        stdin                        xf86stdin
////////
getstring(char *s)
{
        char *cp;
        if (fgets(s, 80, stdin) == NULL)
                exit(1);
        cp = strchr(s, '\n');
        if (cp)
                *cp=0;
}
/////////////
我们有看明白这个stdin到底社个什么东西。大家帮忙解释一下。
发表于 2006-3-13 18:01:59 | 显示全部楼层
标准输入设备。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-13 18:33:18 | 显示全部楼层
typedef struct _xf86_file_ {
INT32 fileno;
INT32 magic;
FILE* filehnd;
char* fname;
} XF86FILE_priv;

XF86FILE_priv stdhnd[3] = {
{ 0, XF86FILE_magic, NULL, "$stdinp$" },
{ 0, XF86FILE_magic, NULL, "$stdout$" },
{ 0, XF86FILE_magic, NULL, "$stderr$" }
};

这两个结构干什么用的呢,标准输入设备不就是0,1吗直接使用不就可以了吗。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-13 18:34:00 | 显示全部楼层
能否详细解释一下小弟实在懂得不是很全。
回复 支持 反对

使用道具 举报

发表于 2006-3-13 19:19:05 | 显示全部楼层
stdin, stdout, stderr是三个FILE *,在stdio.h里可以找到定义。
这段代码定义了一个自己的FILE结构,具体是不是跟stdio.h里的FILE结构有联系就不太清楚了,现在不再Linux下面,不好查。
回复 支持 反对

使用道具 举报

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

本版积分规则

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