免费注册 查看新帖 |

Chinaunix

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

perror为什么总是显示no error [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-20 21:58 |只看该作者 |倒序浏览
我用socket编程的时候,windows下可以用WSAGetLastError()得到最后一个错误,但是用perror就总是no error,我看到很多例子里都用的perror,为什么我用不行呢?还要又什么设置吗?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-09-21 09:10 |只看该作者

perror为什么总是显示no error

如果函数调用没有错误,那么perror就是显示no error
需要先判断函数调用是否成功,如果不成功再调用perror
如:

  1. int msock=socket(AF_INET,SOCK_STREAM,0);
  2. if (msock==-1)  {
  3.     perror("create msock");
  4.     exit(-1);
  5. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2004-09-21 09:26 |只看该作者

perror为什么总是显示no error

我是这样写的。

论坛徽章:
0
4 [报告]
发表于 2004-09-21 13:26 |只看该作者

perror为什么总是显示no error

这是因为 Windows 上的 WSAGetLastError() 这个函数中出错的时候不会设置 errno,因此也就不能使用 perror() 来显示 errno 错误号代表的错误信息。perror() 一般在Linux系统或者库函数中的到应用,在其它系统上使用的时候应该检查使用的库函数是否支持上述 Linux 下的错误处理机制。如果不支持,即在使用的函数中并不设置 errno,则使用 perror() 是没有意义的。

论坛徽章:
0
5 [报告]
发表于 2004-09-21 21:15 |只看该作者

perror为什么总是显示no error

是这样啊,谢谢了

论坛徽章:
0
6 [报告]
发表于 2011-04-08 15:03 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP