问题标签 [atexit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - atexit() 注册了多少个函数?
我们遇到了一个问题,即 3rd 方库使用atexit()
. 有什么方法可以知道注册了多少(或哪些)功能?
我在这里检查过,但它说没有。
我试图和它相处ATEXIT_MAX
,sysconf
但结果却是一个巨大的数字2^31-1
。
有什么办法让它工作吗?
c - 当我从 atexit 处理程序调用 exit 时,为什么我没有得到无限循环?
这个程序注册了一个函数调用exit()
。atexit()
从man atexit
这些回调不能调用 exit()
我正在等待一个无限循环,但它只调用一次machiavellian()
。发生什么了?
ipython - 使用 Ipython 退出脚本时不调用 atexit 函数
下面是用脚本编写的代码 test_atexit.py
当我使用 python2.4 运行该函数时,将调用 exit_function
当我使用 ipython 运行相同的程序时,不会调用 exit_function
为什么在使用 Ipython 运行脚本时不调用 exit_function 以及如何让 ipython 调用 exit_function
c++ - atexit() 使用独立 CLang 未定义
我正在尝试使用 CLang 使用以下命令行编译和链接一些 C++ 代码:
(我省略了输出、包含、定义等。这些都很好)
我遇到的问题是,在链接过程中,我得到了错误
我已经在这个问题上花费了相当长的时间,但我一生似乎无法弄清楚如何正确解决这个问题。
到目前为止,我的研究表明atexit是在stdlib.h中定义的,但是在这种情况下我不能使用标准库(这也不是我的决定,对于这个特定的项目来说是完全强制性的)。
据我所知,这个问题现在才出现,因为我们现在突然在我们的代码中有静态对象,这些对象是以这种方式编译的,这导致编译器尝试注册要为这些对象执行的 con/destructors,这需要调用__cxa_atexit(我们已禁用它,因为同样的原因它也给出了未定义的引用错误)或atexit。
我也尝试在我的代码中定义一个任意的atexit函数,但显然链接器不想与此有任何关系(这对我来说似乎很奇怪)。
所以我的问题是:如何让链接器不抱怨atexit,而不必包含标准库?
提前致谢!
c - 我们可以取消注册一个已经用 atexit() 注册的退出处理程序吗
是否可以注销退出处理函数???
python - 在 atexit 处理程序之前清理 Python 记录器
我想使用 Python 的logging
模块在代理启动和关闭时显示消息。atexit
使用模块清理代理。但是,看起来记录器在代理之前被清理了。我怎样才能得到预期的行为?这是一个工作示例:
以及从 shell 运行脚本的输出:
INFO:root:Hello
Exception AttributeError: "'NoneType' object has no attribute 'info'"<bound method Program.__del__ of <__main__.Program object at 0x7f467c9aabd0>>
被忽略
在不同版本和操作系统中具有相同的行为。
python - 为抽象函数指定退出函数
我需要一种从抽象方法调用函数的方法,即
我需要一种在执行之后自动调用method2
class的方法(它应该在类端完成 - 独立于继承的类)。A
method1
A
有这样做的好方法吗?
python - Python中信号处理程序和atexit处理程序的调用
我有一段 Python 代码如下:
实际代码远比这段代码复杂,但结构是相同的:即 main 函数保持一个无限循环。
我需要一个信号回调来释放占用的资源,比如数据库句柄。然后我添加一个SIGTERM
处理程序,以防服务器被杀死,它只是调用释放函数然后退出进程。其atexit
目的是成功完成处理过程。
现在我有一个问题,我只想release
在进程被终止时调用一次。我的代码有什么改进吗?
c++ - Strange crash with C++ atexit() function
I am using MSVC with Visual Studio 2013. This is the code I am compiling:
The way it is right now - it works like a charm. I start the program, it goes inside the crash function, pauses, I press a key and it closes normally. All cool. However, if I uncomment the while loop and use the X button on the console to close it, I get a crash inside the endl function. I was able to determine that the crash is caused by _Ostr.widen() This is the implementation of the endl function, provided by MSVC:
Using Ctrl+C to terminate the program causes the same effect. How can I fix this?
c - 使用 calloc() 设置 char 数组,完成后也“释放”数组
我正在尝试设置一个字符串数组(在 C 中,使用 Linux)。该数组将包含 11 个字符串(静态长度)。我最初将数组设置为:
但在我的代码中,我有一部分调用 fgets(input,sizeof(input),stdin)。当这个 fgets() 部分被调用时,我的 Answers 数组的最后一个元素被输入的值覆盖(关于 Answers 在堆栈上的位置?)。所以现在我正试图“锁定”我用于 Answers 数组的内存。我会用
或者
循环运行它——
另外,完成后我需要使用 atexit() 来释放分配的内存......因为我无法在 atexit() 中传递参数,所以最好的方法是什么?
atexit(Free);
提前致谢!