免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: kukucm
打印 上一主题 下一主题

请问errno的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-11-20 07:48 |只看该作者
不懂

论坛徽章:
0
12 [报告]
发表于 2005-11-20 09:06 |只看该作者
原帖由 flw 于 2005-11-19 21:11 发表

彻底错误。完全错误。错误得一塌糊涂。

请参见WROX出版社的《Linux程序设计》

论坛徽章:
0
13 [报告]
发表于 2005-11-20 09:55 |只看该作者
我是楼主~我被大牛们搞糊涂了;
我现在只想大家回答我下面这个问题:
erron如果是操作系统全局变量(我觉得是)的话,那么各个进程之间共享?,还是每个进程操作系统给予一个副本?操作系统怎么设置的?共享好象不太可能吧!这也是我很感到很奇怪的问题.

论坛徽章:
0
14 [报告]
发表于 2005-11-20 09:58 |只看该作者
多谢啊,我实在是找了很多书也没有答案,都是extern

论坛徽章:
0
15 [报告]
发表于 2005-11-20 10:03 |只看该作者
o ,对了,还有一个细节问题
extern int errno;这个正说明errno是个int而不是宏,就不是封装系统调用得到的宏,问题是连接器去哪找errno了..

论坛徽章:
0
16 [报告]
发表于 2005-11-20 10:24 |只看该作者
from linux man page:

errno is defined by the ISO C standard to be a modifiable lvalue of type int, and must not be explicitly declared; errno may be a macro

论坛徽章:
0
17 [报告]
发表于 2005-11-20 10:38 |只看该作者
你问题问了不少,不知道问之前看了man page没有,我觉得里面说的很清楚了。
erron如果是操作系统全局变量(我觉得是)的话,那么各个进程之间共享?,还是每个进程操作系统给予一个副本?操作系统怎么设置的?共享好象不太可能吧!这也是我很感到很奇怪的问题.

from man page
[quote=MANPAGE]
errno  is  thread-local;  setting  it in one thread does not affect its value in any other thread.
[/quote]
o ,对了,还有一个细节问题
extern int errno;这个正说明errno是个int而不是宏,就不是封装系统调用得到的宏,问题是连接器去哪找errno了..

现在严重要求不要自己extern int errno,因为就如楼上所说,errno可能是宏,老代码是老代码,不是什么到现在都通用。

论坛徽章:
0
18 [报告]
发表于 2005-11-20 10:40 |只看该作者
谢谢,可是假如extern int erron,那么就不是macro了,是宏的话每当引用的话就系统调用一次就可以了

问题还是没有解决/.....

论坛徽章:
0
19 [报告]
发表于 2005-11-20 10:43 |只看该作者
o  ,多谢,我去看看,只是我的电脑上没有man,有个linux现在进不去了,下次弄弄

论坛徽章:
0
20 [报告]
发表于 2005-11-20 10:45 |只看该作者
原帖由 flw2 于 2005-11-20 10:40 发表
谢谢,可是假如extern int erron,那么就不是macro了,是宏的话每当引用的话就系统调用一次就可以了

问题还是没有解决/.....


连linux帮助文档都没敢说得很确定, 又何必非要刨根问底呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP