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);
相关推荐
handler0123 分钟前
【Linux】ELF、链接与动态库,程序装载全解析
linux·运维·服务器·chrome·c·elf·文件
dishugj32 分钟前
操作系统四大特征|软考架构师考点梳理
java·linux·服务器
Huangjin007_39 分钟前
【Linux 系统篇(十九)】进程(七):深入理解虚拟地址空间:从进程地址空间到内核管理
linux·运维·服务器
YIN_尹44 分钟前
【Linux系统编程】模拟实现一个最简版C语言标准IO库
linux·服务器·c语言
aningx1 小时前
使用自定义bash脚本预防oom卡死 v2
linux
cjp5603 小时前
011. UG二次开发,UG管道通讯服务器与wpf客户端通讯
linux·运维·服务器
上官唐云3 小时前
2024届本科 | C++ Linux服务端开发求职:从嵌入式到底层服务端的技术之路(附开源项目+简历)
linux·c++·开源·求职招聘
Zucker n3 小时前
Ubuntu24.04结合ollama本地使用Hermes
linux·ubuntu
邪修king3 小时前
Linux系统篇(二十三) 基础 IO:从“文件”到“文件描述符”,彻底理解重定向
android·java·linux
正仪4 小时前
systemd 是什么?
linux·运维·windows