if((err = ioctl(fd, IOC_CARD_LOCK, &lock)) < 0)
{
printf("ioctl failed and returned errno %d \n",err);
}
上面的代码是否正确并且是良好的编程习惯?它确实可以在我的电脑上编译。
即它是否填充err
返回值为ioctl
并检查是否err
is < 0
上述方法是IOCTL返回“err”的标准方式吗?
似乎有一些标准变量叫做 errno?
它是什么?会和上面一样吗?
我找到了一个更好的方法来做到这一点。
if(ioctl(fd, IOC_CARD_LOCK, &lock) < 0)
{
printf("ioctl failed and returned errno %s \n",strerror(errno));
}
errno 是为系统调用设置的全局变量。strerror 将代码(负整数)转换为有意义的字符串(例如“无效参数”。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)