问题标签 [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.

0 投票
1 回答
244 浏览

c++ - 在 taskkill 命令期间可以调用 atexit() 吗?

我正在尝试使用 atexit 函数来调用函数,但如果我使用批处理文件在程序上执行 taskkill 命令,它似乎不起作用。有什么办法可以使这项工作?

0 投票
2 回答
189 浏览

c++ - 为什么在 C++ 中声明静态成员会导致链接器链接 atexit

如果我将传感器声明为静态 - 链接器会抱怨atexit 的未定义引用。

如果我将传感器声明为非静态的 - 它不会 - 为什么?

//c++类中的静态函数

0 投票
1 回答
605 浏览

python - Python 在任何脚本之前运行

在 Python 中,是否有类似的东西atexit。Atexit 旨在用作“拆解”。我需要类似“设置”的东西。在我运行这个 setUp 的任何脚本之前,它都会被执行。

编辑

我应该指出我有几个单独执行的小脚本。所有这些脚本都连接到相同的逻辑。我想在我们的项目中引入依赖注入,但例如python-inject需要在运行每个脚本之前进行配置。我不想在所有脚本的开头都设置相同的inject.configure(myConfiguration)内容,只是为了设置它们。

现在我要看看@en_Knight 关于 PYTHONSTARTUP 的建议,然后再回来。

解决方案 @en_Knight 提供的关于 PYTHONSTARTUP 的内容肯定会奏效。虽然我拥有所有的部署能力:] 我觉得这也不是一个好主意。我解决了修改python-inject源的问题

谢谢你的帮助!

0 投票
2 回答
3491 浏览

python - 如何在python的多处理子进程中注册“atexit”函数?

我有一些子进程(使用多处理),当它们停止时,它们每个都需要做一些最后的工作。像下面这样的东西,虽然没有用......

那么我该怎么做呢?

0 投票
1 回答
825 浏览

c++ - atexit 用于单例破坏:失败案例

来自:https ://sourcemaking.com/design_patterns/to_kill_a_singleton

有一件事是肯定的:如果单例析构函数相互依赖,则不能使用多个析构函数。另一种方法是完全避开驱逐舰,而是依赖标准草案 atexit() 函数,正如 Tim Peierls 向我建议的那样:我认为 atexit() 是在 C++ 中清理单例的好方法,当你真的想要单例程序时终生且不可更换。

标准草案有很多承诺:函数 atexit() 可用于指定要在退出时调用的函数。如果要调用 atexit(),则在 atexit() 调用中指定的函数被调用之前,实现不应销毁在 atexit() 调用之前初始化的对象。

我可以看到这种失败的唯一方法是,如果在构造 Singleton 实例之后初始化其析构函数依赖于 Singleton 实例的静态初始化对象 ,即通过其他一些静态初始化。这表明具有静态实例的类在销毁期间应避免依赖单例。(或者至少应该有一种方法让此类类在销毁期间检查单例是否存在。)

我无法理解最后一段,即在这种情况下它将失败以及如何失败。

有人可以说明一下吗。

0 投票
1 回答
294 浏览

c++ - 从析构函数调用函数或将其提供给 atexit() 之间的区别

我对此有点困惑——请帮忙。

假设一个 C++ 程序有一个类和该类的一个对象。我想执行一些与清理相关的任务并为此编写了一个函数。那么我应该更喜欢从析构函数调用该方法还是通过调用atexit()

注意:我知道 C++ 类析构函数和atexit(). 它会影响任何性能吗?或者有什么好处?

0 投票
1 回答
751 浏览

c++ - 当我们使用 atexit() 时,没有为本地对象调用析构函数

请帮助:我知道析构函数和 atexit() 并且也知道以下内容: atexit() 注册一个要在程序终止时调用的函数(例如,当 main() 调用 return 或 exit() 在某处显式调用时)。

当调用 exit() 时,静态对象被销毁(调用析构函数),但不是局部变量范围内的对象,当然也不是动态分配的对象(只有在显式调用 delete 时才会被销毁)。

下面的代码给出的输出为:atexit handler Static dtor

你能帮我知道为什么当我们使用 atexit() 时不会调用本地对象的析构函数吗?

提前致谢:

0 投票
1 回答
129 浏览

c - 为什么要多次调用相同的退出处理程序(atexit 函数)?

函数:int atexit (void (*function) (void)) 允许我们多次调用相同的退出处理函数。为什么要多次调用退出处理程序?你能给我一个例子,说明多次调用同一个退出处理程序是有意义的。

0 投票
0 回答
190 浏览

c - 如何使用 atexit() 函数释放内存?

这是简单的代码:

当程序退出时,我怎样才能释放内存。函数“cleanUp”没有参数。那么如何释放函数“cleanUp”中的内存以防止内存泄漏。

0 投票
1 回答
1059 浏览

rust - 为什么 atexit 处理程序在访问标准输出时会出现恐慌?

下面的 Rust 程序stdoutatexit处理程序中访问时会发生恐慌。

输出:

在我看来,这个注册应该在我们的atexit注册之前运行,所以处理程序中的这一行应该只在我们的自定义处理程序之后运行。因此它不应该恐慌。