【发布时间】:2018-03-30 20:03:26
【问题描述】:
我正在尝试使用atexit () 注册一个函数,该函数将根据程序的当前状态打印不同的消息。我知道当您使用atexit 注册函数时,您无法传递参数。
那么,如何传递程序状态,比如一个整数,并让该函数打印不同的语句?
我知道我可以注册多个函数,但我只能使用一个。
【问题讨论】:
-
捂住鼻子使用全局变量?
-
我早该想到的……谢谢!
-
实际上,
atexit()的手册页提到了on_exit()看看那个函数,它需要参数。 -
这听起来是一个更好的选择。再次感谢
-
如果 on_exit(我的文档称之为 _onexit)不是一个选项,你也可以考虑使用 libffi 创建一个闭包。基本上在运行时创建一个小函数,可以关联调用提供的参数之外的参数。