免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1435 | 回复: 0
打印 上一主题 下一主题

[学习] UNIX环境编程里面例子7-4 跳转相关程序请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-12-31 17:25 |只看该作者 |倒序浏览
本帖最后由 漫游云巅 于 2012-12-31 17:34 编辑

#include<stdio.h>
#include<stdlib.h>
#include<setjmp.h>

#define TOK_ADD 5

void do_line(char*);
void cmd_add(void);
int get_token(void);

int main()
{
    char line [4096];

    while(fgets(line,4096,stdin)!=NULL)
        do_line(line);//调用do_line函数
    exit(0);
}

char *tok_ptr; //这个指针到底有什么用?
void do_line(char *ptr)
{
    int cmd;
    tok_ptr=ptr;//就这用了一次
    while ((cmd=get_token())>0){//这个cmd=get_token()是什么,感觉永远>0啊,永远在这个循环中。
    switch (cmd){
        case TOK_ADD:
            cmd_add();
            break;
    }
    }
}

void cmd_add(void)//同样,这个函数干嘛用的?感觉没用啊
{
    int token;
    token=get_token();
    printf("token=%d",token);
}

int get_token(void)//这个空函数干什么的?返回什么给cmd
{
}
-----------------------------------------------------------------------------------------------------------------
运行结果就是不停的fgets输入东西,也不结束。

这整个程序是要说明什么?

cmd=get_token(),我单独程序试过,printf出cmd=1;但如果 while ((cmd=get_token())>0),则cmd第一次=1,后面就恒定cmd=5了。这个空函数到底什么意思?

希望高手能帮忙解答下,谢谢了。

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP