问题标签 [exit]

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 投票
8 回答
71553 浏览

bash - 在意外的 bash 退出中删除创建的临时文件

我正在从 bash 脚本创建临时文件。我在处理结束时删除它们,但由于脚本运行了很长时间,如果我在运行期间将其杀死或只是 CTRL-C,临时文件不会被删除。
有没有办法在执行结束之前捕获这些事件并清理文件?

此外,这些临时文件的命名和位置是否有某种最佳实践?
我目前不确定是否使用:

或者也许有更好的解决方案?

0 投票
4 回答
16985 浏览

c - 在 C 中使用 WEXITSTATUS 宏而不是在 exit() 状态下除以 256 有什么好处?

我正在为大学做一个练习,我必须在退出时返回一个值,该值实际上是一个计数。这可能高于 255(exit() 无法处理),但老师建议使用计数永远不会超过该值的测试数据。

毕竟,我需要处理这个计数值,退出状态,我通过使用waitpid()在主进程中获取了这个值。令我惊讶的是,如果子进程返回 1,则主进程中的“真实”值是 256,2 是 512,依此类推......

我需要打印这个值,所以我简单地将它除以 256 就完成了。但是,如果我使用 WEXITSTATUS() 宏,我也会以我想要的方式获得这个值......

我查看了 C 源代码,这就是我发现的:

我知道这里发生了什么,例如,二进制的 512 是 10 0000 0000,向右移动 8 位将得到 00 0000 0010,即十进制的 2。我在这个宏中不明白的是 & 运算符以及 0xff00 似乎是一个随机数的事实(它可能不是,它来自哪里?)。这究竟是做什么的,为什么宏中有“& 0xff00”?没有它就不行吗?

这个主题的真正问题是,在我的代码中调用这个宏与除以 256 是一样的吗?

0 投票
2 回答
1599 浏览

erlang - 崩溃后如何恢复进程状态?

重新启动崩溃的进程时保持状态的好方法是什么?

我在 OTP 应用程序中有一个主管,负责监视几个“子系统”gen_server。

例如,一个是“天气”子系统,它每 15 分钟生成一个新的天气状态并处理对当前天气状态的查询。(想想柠檬水摊游戏)

如果该 gen_server 崩溃,我希望它重新启动,但它应该以最近的天气状态重新启动,而不是硬编码在init(). 仅仅因为坠机,模拟状态突然从“冰雹风暴”变成“轻松愉快”是没有意义的。

由于增加了复杂性,我不愿在每次更新后使用 mnesia 或 ETS 来存储状态;有没有更简单的方法?

0 投票
3 回答
62389 浏览

c - 如何退出子进程并从 execvp() 返回其状态?

在我的简单自定义 shell 中,我从标准输入读取命令并使用 execvp() 执行它们。在此之前,我创建当前进程的一个分支,并在该子进程中调用 execvp(),之后,我调用 exit(0)。

像这样的东西:

现在,使用 execvp() 运行的命令可以返回错误,对吧?我想正确处理这个问题,现在我总是调用 exit(0),这意味着子进程将始终处于“OK”状态。

如何从 execvp() 调用中返回正确的状态并将其放入 exit() 调用中?我是否应该只获取 execvp() 返回的 int 值并将其作为 exit() 参数而不是 0 传递。这是否足够且正确?

0 投票
9 回答
19565 浏览

c# - 如何将代码添加到 ac# 形式的退出按钮?

我正在使用 Microsoft Visual C# 2008 Express。

在我的主表单中,右上角有用于关闭表单的 X 按钮。如何向此按钮添加代码?在我的菜单中,我有一个“退出”项,它有清理和关闭我的数据库的代码。如果用户选择将其作为退出方式,我如何向此按钮添加相同的代码?

谢谢!

-阿迪娜

0 投票
3 回答
3331 浏览

c# - 在 Environment.Exit() 上捕获异常

我的主要功能结束后,我需要返回退出代码 1。但是,我还有一个永远不会结束的线程(while(true))。所以我设法打电话给Environment.Exit(1)。但是在处理 com 对象时我遇到了一些异常......

由于几个原因,我无法更改其他线程代码。大家提倡怎么做?

我可以捕获来自 com 对象处理的异常吗?我是否有其他选项可以返回退出代码?

0 投票
5 回答
29908 浏览

python - 如何在被 Python 杀死之前运行最后一个函数?

有没有办法在运行的 Python 脚本被其他脚本、键盘中断等杀死之前运行最后一个命令?

0 投票
3 回答
12338 浏览

qt - 在关闭 QCoreApplication 之前清理

我有一个基于控制台的QCoreApplication,它具有计时器并进行套接字通信,并且还使用锁定的互斥锁。

当我手动关闭应用程序时,它会提示某些互斥锁已锁定并且已超时。当用户关闭控制台应用程序时,有什么方法可以在控制台应用程序中进行清理吗?

0 投票
2 回答
2923 浏览

c++ - 诊断无法停止的应用程序

我们的 Windows 应用程序经常挂在内存中,我正在尝试使用 windbg 来追踪问题。我对 windbg 很陌生,可以使用一些建议(不过我已经开始阅读 Advanced Windows Debugging)。

该应用程序是用 VB 编写的 C++ 和 COM 对象的混合体。有时,当您退出时,该应用程序似乎消失了,但任务管理器显示它在内存中徘徊,显然是空闲的。

!threads 向我展示了这一点:

在我未经训练的眼睛看来,它似乎被单线程单元阻塞的 finalize 队列保持活动状态。这看起来合理吗?

~0kb 产生:

~6kb 产生:

我会很感激这里的一些课程修正。如果我对阻塞终结器的猜测似乎合理,请告诉我。我也很乐意得到一些建议来弄清楚究竟是什么阻塞了。

编辑:

Shane 询问 !analyze 的输出。这实际上来自不同的转储——我有很多,它们看起来都差不多。

0 投票
6 回答
41098 浏览

c# - 应用程序.退出

我正在使用 VSTS 2008 + .Net 3.5 + C# 来开发 Windows 窗体应用程序。我的困惑是,似乎 Application.Exit 不会强制应用程序终止?如果不是,我应该调用哪种方法来终止应用程序?

编辑1:

通常main方法是这样的,不调用Environment.Exit如何优雅退出Main函数?

提前谢谢,乔治