C++ 出现术语信号时,Windows处理退出代码

C++ 出现术语信号时,Windows处理退出代码,c++,c,powershell,winapi,C++,C,Powershell,Winapi,在Unix/Linux环境中,很容易确定程序是否由于信号中断(sigterm)而退出,以及哪个信号中断 可以确定(以编程方式使用API或退出代码)windows程序是否因信号而退出(例如,来自powershell的sigkill) 进一步回答我的问题: 用户是否可以从任务管理器或powershell等处终止应用程序 如果一个应用程序没有响应,并且操作系统终止了该应用程序,那么它的退出代码是什么 Windows有“许多”错误代码,我想知道哪些错误代码只与进程管理相关 亲切问候,没有,因为Win

在Unix/Linux环境中,很容易确定程序是否由于信号中断(sigterm)而退出,以及哪个信号中断

可以确定(以编程方式使用API或退出代码)windows程序是否因信号而退出(例如,来自powershell的sigkill)

进一步回答我的问题:
  • 用户是否可以从任务管理器或powershell等处终止应用程序
  • 如果一个应用程序没有响应,并且操作系统终止了该应用程序,那么它的退出代码是什么
Windows有“许多”错误代码,我想知道哪些错误代码只与进程管理相关


亲切问候,

没有,因为Windows没有信号。使用API终止进程

TerminateProcess
执行所有调用方传递退出代码的操作,但没有记录powershell或任务管理器将此设置为的值

Windows不定义任何进程退出代码,应用程序可以使用它想要的任何退出代码。没有要检查的“流程管理错误代码”

要直接回答您的问题:

用户是否有可能从任务中终止应用程序 经理,还是来自powershell

是的。您可以从任务管理器中终止进程,powershell使用
kill
Stop process
或从命令行中使用
taskkill

如果某个应用程序没有响应,并且操作系统终止了该应用程序, 它的退出代码是什么


对此没有保证的退出代码。Windows可能会将其设置为某个值,但这是一个实现细节,可以在不同版本的Windows之间进行更改。

没有,因为Windows没有信号。使用API终止进程

TerminateProcess
执行所有调用方传递退出代码的操作,但没有记录powershell或任务管理器将此设置为的值

Windows不定义任何进程退出代码,应用程序可以使用它想要的任何退出代码。没有要检查的“流程管理错误代码”

要直接回答您的问题:

用户是否有可能从任务中终止应用程序 经理,还是来自powershell

是的。您可以从任务管理器中终止进程,powershell使用
kill
Stop process
或从命令行中使用
taskkill

如果某个应用程序没有响应,并且操作系统终止了该应用程序, 它的退出代码是什么

对此没有保证的退出代码。Windows可能会将其设置为某个值,但这是一个实现细节,可以在不同版本的Windows之间进行更改

用户是否可以从任务管理器或powershell等处终止应用程序

如果一个应用程序没有响应并且操作系统终止了该应用程序,那么它的退出代码是什么

操作系统不会终止应用程序。用户可以选择这样做,有时在操作系统的提示下。在这种情况下,退出代码没有定义


当应用程序正常终止时,它设置退出代码。退出代码是特定于流程的。唯一的约定是0意味着成功。在那之后,这是一个垃圾射击

当应用程序被
TerminateProcess
强制终止时,终止程序将调用中的退出代码传递给
TerminateProcess

用户是否可以从任务管理器或powershell等处终止应用程序

如果一个应用程序没有响应并且操作系统终止了该应用程序,那么它的退出代码是什么

操作系统不会终止应用程序。用户可以选择这样做,有时在操作系统的提示下。在这种情况下,退出代码没有定义


当应用程序正常终止时,它设置退出代码。退出代码是特定于流程的。唯一的约定是0意味着成功。在那之后,这是一个垃圾射击


当应用程序被
TerminateProcess
强制终止时,终止程序将调用中的退出代码传递给
TerminateProcess

Windows实际上没有Unix风格的信号,没有SIGKILL,所以没有。英文标点符号也知道问号:
@alk。非常感谢。我不知道。它还有俚语“聪明的驴”;)Windows实际上没有Unix风格的信号,没有SIGKILL,所以没有。英文标点符号也知道问号:
@alk。非常感谢。我不知道。它还有俚语“聪明的驴”;)是的,没有定义/记录流程被TaskManager等终止时的退出代码。然而,TaskManager使用了一个已知的退出代码,它已经在许多Windows版本(如果不是全部的话)中使用,这是1。还有
generateConsoleControlevent
。这与UNIX信号不完全相同,但非常相似。如果程序通过
generateConsolectLevent
发出信号,它可能会决定终止-在这种情况下,退出代码当然取决于程序。谢谢。那很有用。将其添加为答案,我将向您投票。是的,当流程被TaskManager等终止时,没有定义/记录的退出代码。然而,TaskManager使用了一个已知的退出代码,它已经在许多Windows版本(如果不是全部的话)中使用,这是1。还有
generateConsoleControlevent
。这与UNIX信号不完全相同,但非常相似。如果程序通过
generateConsolectLevent
发出信号,它可能会决定终止-在这种情况下,退出代码当然取决于程序。谢谢。那很有用。加上它作为答案,我会投票给你。