我正在使用Cygwin上的emacs学习C ++,我听说在较旧的Unix操作系统中,段错误可以完全破坏关键内存。我知道Cygwin的一个想法就是让Windows更像Unix,所以如果我在Cygwin上遇到段错误,会不会对Windows或Cygwin造成任何损害?
答案 0 :(得分:3)
不,它不会损坏任何东西。它只会导致触发段错误的应用程序崩溃。并且可能(取决于您的Windows版本和设置),您将收到一条恼人的弹出消息,通知您崩溃,并询问您是否要报告。
答案 1 :(得分:0)
在现代操作系统(包括Linux,Win2K +和MacOSX)中,每个进程只能访问由操作系统管理的“虚拟内存”区域,并在进程终生完成后完全清理。导致进程终止的部分进程的内存访问错误意味着进程已尝试访问其未通知操作系统的部分虚拟地址空间以及操作系统不想处理访问的内容,但这不会影响一个进程之外的任何事情。用户空间进程无法直接访问“真实”内存,因此您无法真正做出巨大的伤害。
(好吧,我正在掩饰事情,如果你不小心触发了一个API调用“kill”并且你有管理员权限,我想你可以造成一些伤害。但是你知道我是什么的意思。)