当我从atexit处理程序调用exit时,为什么没有得到无限循环?

烤薄片

这个程序注册一个函数调用exit()atexit()

#include <stdio.h>
#include <stdlib.h>

void machiavellian() {
    puts("At exit");
    exit(0);
}
int main(void) {
    atexit(machiavellian);
    exit(0);
}

man atexit

这些回调不得调用exit()

我在等待一个无限循环,但是相反,它只调用一次machiavellian()怎么了?

$ make you_cant_exit_me
cc     you_cant_exit_me.c   -o you_cant_exit_me
$ ./you_cant_exit_me 
At exit
$ echo $?
0
Sneftel

“这些回调不得调用exit()”并不意味着“如果这些回调调用exit(),则会发生特别有趣的事情”。它只表示“不做,否则您就一个人”。不同的POSIX兼容系统可能还会做其他事情,例如无限循环。由于您没有遵守规则,因此您无法指望会发生什么。

(不过,我假设几乎没有系统会陷入无限循环。避免这种情况很简单,而且我无法想象这是有用的结果。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我通过它的 ID 调用它时,为什么我没有得到这个元素的内容?

来自分类Dev

为什么我在调用函数时没有得到输入?

来自分类Dev

C ++为什么当我从const方法内部的ref成员调用non const方法时,我没有得到编译错误

来自分类Dev

当我增加数组中引用的变量时,为什么我的PointF状况没有得到更新?

来自分类Dev

当我的输入变量超过 1 个字符时,为什么我没有得到任何结果?

来自分类Dev

当我编写自己的表达式时,为什么没有得到与tensorflow方法相同的结果?

来自分类Dev

当我使用<script src =“ false_ip”>时,为什么在JavaScript中没有得到“ NetworkError”?

来自分类Dev

当我使用交替而不是方括号扩展时,为什么在grep中没有得到结果?

来自分类Dev

当我尝试返回多维数组中某项的索引值时,我没有得到数字。我得到一组奇怪的字符。为什么?

来自分类Dev

当我尝试返回多维数组中某项的索引值时,我没有得到数字。我得到一组奇怪的字符。为什么?

来自分类Dev

为什么被模拟的对象没有得到方法调用?

来自分类Dev

为什么每次运行循环时都没有得到相同的结果?

来自分类Dev

当我尝试通过我的应用程序注册时,我没有得到任何响应

来自分类Dev

为什么我没有得到NSString的输出

来自分类Dev

为什么我没有得到清单

来自分类Dev

为什么我没有得到准确的图像?

来自分类Dev

为什么我没有得到相同的结果?

来自分类Dev

为什么我的状态没有得到回应?

来自分类Dev

为什么我没有得到想要的输出?

来自分类Dev

为什么我没有得到加法的结果?

来自分类Dev

为什么我没有得到任何输出?

来自分类Dev

为什么我没有得到“ PE \ 0 \ 0”?

来自分类Dev

为什么我没有得到任何输出

来自分类Dev

为什么我没有得到价值

来自分类Dev

为什么我没有得到正确的乘法输出?

来自分类Dev

为什么我没有得到任何输出

来自分类Dev

为什么我的 QString 没有得到 TextField 的值?

来自分类Dev

为什么插入VB.NET时我的密码没有得到加密

来自分类Dev

为什么我在导入 msxml6 时没有得到 C4192?

Related 相关文章

  1. 1

    当我通过它的 ID 调用它时,为什么我没有得到这个元素的内容?

  2. 2

    为什么我在调用函数时没有得到输入?

  3. 3

    C ++为什么当我从const方法内部的ref成员调用non const方法时,我没有得到编译错误

  4. 4

    当我增加数组中引用的变量时,为什么我的PointF状况没有得到更新?

  5. 5

    当我的输入变量超过 1 个字符时,为什么我没有得到任何结果?

  6. 6

    当我编写自己的表达式时,为什么没有得到与tensorflow方法相同的结果?

  7. 7

    当我使用<script src =“ false_ip”>时,为什么在JavaScript中没有得到“ NetworkError”?

  8. 8

    当我使用交替而不是方括号扩展时,为什么在grep中没有得到结果?

  9. 9

    当我尝试返回多维数组中某项的索引值时,我没有得到数字。我得到一组奇怪的字符。为什么?

  10. 10

    当我尝试返回多维数组中某项的索引值时,我没有得到数字。我得到一组奇怪的字符。为什么?

  11. 11

    为什么被模拟的对象没有得到方法调用?

  12. 12

    为什么每次运行循环时都没有得到相同的结果?

  13. 13

    当我尝试通过我的应用程序注册时,我没有得到任何响应

  14. 14

    为什么我没有得到NSString的输出

  15. 15

    为什么我没有得到清单

  16. 16

    为什么我没有得到准确的图像?

  17. 17

    为什么我没有得到相同的结果?

  18. 18

    为什么我的状态没有得到回应?

  19. 19

    为什么我没有得到想要的输出?

  20. 20

    为什么我没有得到加法的结果?

  21. 21

    为什么我没有得到任何输出?

  22. 22

    为什么我没有得到“ PE \ 0 \ 0”?

  23. 23

    为什么我没有得到任何输出

  24. 24

    为什么我没有得到价值

  25. 25

    为什么我没有得到正确的乘法输出?

  26. 26

    为什么我没有得到任何输出

  27. 27

    为什么我的 QString 没有得到 TextField 的值?

  28. 28

    为什么插入VB.NET时我的密码没有得到加密

  29. 29

    为什么我在导入 msxml6 时没有得到 C4192?

热门标签

归档