c - C程序abort()使.exe访问在终止后被拒绝

标签 c windows assert abort

在C语言中使用不同的基础知识,我发现了一个错误,到目前为止,在网络上找不到该错误的答案。
在Windows 10中的cmd提示符下使用TCC:

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

int main(int argc, char **argv) {
    abort(); //or assert()
    return 0;
}
该问题首先出现在assert()中的一些伪表达式(如assert(1==0);)中,该表达式调用abort()。在abort()之前的其余代码只是带有几个printfssizeof的列表,在我添加assert/abort之前,没有任何问题。程序将在应有的位置终止。然后,我无法编写(重新编译)或删除.exe。在任务列表中查找,该程序被列出与运行次数相同的次数。似乎卡在了“某处”。 %ERRORLEVEL%给出3。我必须以管理员特权对其执行任务杀死。
(我在gcc上的Ubuntu上尝试了代码,效果很好。)

最佳答案

我卸载了ZoneAlarm,一切恢复正常。看来,默认情况下,此防火墙可以保持命令提示符处于 Activity 状态,该命令提示符在退出时返回一个值( )。

关于c - C程序abort()使.exe访问在终止后被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64190298/

相关文章:

c++ - 一段用 gcc 而不是 g++ 编译的代码

c - 难以理解,尤其是在输入方面

c - 在 C 程序中查找 UDP 数据有效负载中的八位字节

c# - 使用 C# 在本地注销 Windows 用户

android - Robolectric & 测试 startActivityForResult

c - 为什么inbuf = xmalloc(insize + page_size - 1)?

java - 从在 docker 容器内运行的应用程序连接到在本地运行的数据库

Windows 7、加速度计和其他传感器

swift - Swift 中的断言

c++ - 将 MFC 库移植到 linux 和 ASSERT