PTR_ERR 系列函数和宏

ERR_PTR 和 PTR_ERR 系列函数用于内核中处理指针和错误码的转换,特别是在需要通过指针返回结果的函数中非常有用。

  1. IS_ERR(ptr)
    判断一个指针是否是一个错误指针。错误指针是通过内核特定的方式将错误码编码到指针中进行返回。
c 复制代码
bool IS_ERR(const void *ptr);
  1. PTR_ERR(ptr)
    将一个错误指针解码为一个负的错误码。如果传入的指针是正常的,则该宏的行为未定义。
c 复制代码
long PTR_ERR(const void *ptr);
  1. ERR_PTR(err)
    将一个负的错误码编码为一个指针。这是用于将错误码返回为指针类型的函数的一种机制。
c 复制代码
void *ERR_PTR(long error);
  1. IS_ERR_OR_NULL(ptr)
    判断一个指针是否是一个错误指针或者 NULL 指针。
c 复制代码
bool IS_ERR_OR_NULL(const void *ptr);
  1. ERR_CAST(ptr)
    用于将错误指针强制转换为另一种类型的指针。这个宏不会修改错误指针的实际值,它只是用于类型转换。
c 复制代码
typeof(ptr) ERR_CAST(const void *ptr);
相关推荐
百年渔翁_肯肯21 分钟前
Linux 与 Unix 的核心区别(清晰对比版)
linux·运维·unix
胡闹5433 分钟前
Linux查询防火墙放过的端口并额外增加需要通过的端口命令
linux·运维·windows
lc9991022 小时前
简洁高效的相机预览
android·linux
SongJX_2 小时前
DHCP服务
linux·运维·服务器
[J] 一坚2 小时前
Shell 脚本解锁 curl/iptables/Nginx 日志分析等实战用法
linux·服务器·正则表达式·系统架构·自动化
点亮一颗LED(从入门到放弃)2 小时前
字符设备驱动(5)
linux·运维·服务器
知识分享小能手2 小时前
CentOS Stream 9入门学习教程,从入门到精通,Linux日志分析工具及应用 —语法详解与实战案例(17)
linux·学习·centos
ZXF_H2 小时前
Linux tcpdump抓包实践(以http为例)
linux·http·wireshark·tcpdump
悄悄敲敲敲2 小时前
Linux:信号(二)
linux·操作系统·信号
Felven3 小时前
飞腾D2000 GPIO中断调试
linux·gpio·中断·d2000