1

在 C 中,当主进程结束时——它如何知道调用任何注册的函数atexit()

我了解如何atexit()工作,但我不了解“主进程结束”和“调用任何注册的函数”之间的通信atexit()我有点多余。

谢谢!

4

2 回答 2

6

在 C 语言中,该main()函数实际上是由一些内置在运行时中的其他函数调用的。这个函数,在main()函数结束后,会做更多的事情来清理。其中之一是调用已在atexit(). 这个函数实际上存储了某种函数指针的静态列表,运行时之后会调用它main()

于 2009-11-25T19:16:21.997 回答
1

来自C 标准[PDF 链接] (5.1.2.2.3):

对函数的初始调用的返回main等效于以exit函数返回的值main作为参数调用函数;到达}终止主函数的返回值0

exit调用注册的函数是函数的责任atexit(参见标准中的 7.20.4.3 以了解所做的所有事情的描述exit)。

于 2009-11-25T19:20:43.457 回答