LinuxSir.cn,穿越时空的Linuxsir!

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

《unix环境高级编程》中关于ourhdr.h的疑问

[复制链接]
发表于 2005-8-30 17:02:12 | 显示全部楼层 |阅读模式
为了好好学习,买了《unix环境高级编程》,就算看起来很费劲也要不断的思考不停的看。

对于其中自定义的一个文件头ourhdr.h,在附录中有他的源代码。但是我这里有一个疑惑就是,这样的话,对把程序写的尽量标准不出错有没有影响。

里面有些err_quit err_sys函数应该是自定义的。这样很容易产生一种不好而又错误的习惯。用上一些标准系统不存在的函数。

我暂时是将err_quit,err_sys这些用printf写。

也许我的理解错了,这些函数是标准的。请指明这个问题。
发表于 2005-8-30 17:05:37 | 显示全部楼层
你可以看看源代码,err_quit,err_sys这些函数实际上是作者自己对标准函数作的包装,用它会方便 一些,不用也没有什么关系。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-30 17:22:28 | 显示全部楼层
看来我要先把这个头文件搞熟悉,自定义了那些函数,这样,就不会弄混淆。看来这里的兄弟热情的很。只要能回帖都感动

那也希望兄弟们不要闲我烦和笨,希望能尽量指点我,跨一个门槛还是需要大家扶持。

这个有点不太懂

void err_quit(const char *fmt,...)
{
  va_list ap;  
  va_start(ap,fmt);
  err_doit(0,fmt,ap);
  va_end(ap);
  exit(1);
}

我想  va_start,err_doit va_end这些应该是函数原形,标准的吧?? 以前没有见过,用过,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2005-8-30 17:34:35 | 显示全部楼层
man va_start
用来处理参数个数不定的情况的,提供类似printf那样的支持可变参数功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-30 17:44:56 | 显示全部楼层
man va_star
No manual entry for va_start
好像没有这个stdarg.h头文件哦。

要怎么把常用的那些头文件都装上呢?? 偶是debian,记得装了libc6-dev这个,其他的要装那些呢??
回复 支持 反对

使用道具 举报

发表于 2005-8-31 10:41:02 | 显示全部楼层
你的环境应该可以使用va_list,你自己写一个小程序试验一下。
回复 支持 反对

使用道具 举报

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

本版积分规则

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