gpt4 book ai didi

c - 了解 Cerrno

转载 作者:太空狗 更新时间:2023-10-29 16:02:22 25 4
gpt4 key购买 nike

在我的系统上 errno 定义为:

int *    __error(void);
#define errno (* __error())

我理解 errno 是一个宏并扩展为 * __error() 函数:

  1. 我到处搜索(源代码在我的系统上)但找不到 __error() 函数的定义,有人可以显示/解释什么是/应该是什么的定义是吗?

  2. 表达式 errno = 0 如何与上述定义一起工作(将 0 分配给函数?)? errno = 0 是否扩展为 * __error() = 0

谢谢

最佳答案

__error 函数返回一个指向调用线程的 errno 变量的指针。 errno 宏取消对该指针的引用,导致左值可以出现在等号的两边。

回答您的问题:

  1. 该函数确定该特定线程的 errno 变量的正确地址。每个线程都有自己的线程。

  2. 是的,它变为 (* __error()) = 0;0 分配给该线程的 errno 变量。

关于c - 了解 Cerrno,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14048187/

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