gpt4 book ai didi

IOCTL 调用和检查返回值

转载 作者:行者123 更新时间:2023-12-01 07:27:46 25 4
gpt4 key购买 nike

if((err = ioctl(fd, IOC_CARD_LOCK, &lock)) < 0)
{
printf("ioctl failed and returned errno %d \n",err);
}

上面的代码是否正确并且是一个好的编程习惯?它确实在我的 PC 上编译。
即它是否填充 err返回值为 ioctl并检查是否 err< 0
上面的方法是返回 IOCTL 返回的“err”的标准方法吗?

似乎有一些标准变量叫做 errno?
它是什么?会和上面一样吗?

最佳答案

我找到了一个更好的方法来做到这一点。

if(ioctl(fd, IOC_CARD_LOCK, &lock) < 0)
{
printf("ioctl failed and returned errno %s \n",strerror(errno));
}

errno 是为系统调用设置的全局变量。strerror 将代码(负整数)转换为有意义的字符串(例如“无效参数”。)

关于IOCTL 调用和检查返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14968238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com