【发布时间】:2012-10-16 05:28:14
【问题描述】:
我在一个简单的 C 程序中声明了两个变量(一个是全局变量,另一个是局部变量),除了两个具有不同大小数据的数组。在进行return 0; 调用之前,我使用strcpy() 例程导致缓冲区溢出。我在终端屏幕上看到了分段错误错误。
我知道在收到此SIGSEGV 信号后,系统会获取进程内存的核心转储并终止该进程,但系统是否会清理(清零)堆栈/堆内存和其他部分(如 BSS 段) , 文本段等?
我猜,在进程正常终止时,系统会清理(清零)内存,但我不太确定。
我正在使用Ubunutu 10.12 和gcc 运行程序。
【问题讨论】:
-
我已经在互联网上浏览了几个星期,但我找不到任何可靠来源(如 linux 文档)的链接,这表明 linux 确实如此。能给个链接吗?
标签: linux signals segmentation-fault