BBS水木清华站∶精华区

发信人: chenl (bigmouth), 信区: Linux 
标  题: Re: 求助高手 (转载) 
发信站: BBS 水木清华站 (Sat Aug  7 09:02:19 1999) WWW-POST 
 
【 在 valencia (郭靖) 的大作中提到: 】 
 【 以下文字转载自 Unix 讨论区 】 
 【 原文由 valencia 所发表 】 
 我的一个程序(规模比较大):其中有一个函数中 
 有一个变量:result, 
 在执行过程中从没有修改过,但在某个地方 
 突然变了,在其后语句“return result” 
 时,程序死掉了有(SIGILL"信号) 
 后修改程序,不return result 而是return 1 
 依然以SIGILL死掉 
 大虾门认为回有什么样的原因造成着个结果?怎么处理? 万分感谢 
 在详细解释以下SIGILLC出现的原因 
 我看了头文件“/* (*) illegal instruction (not reset when caught)*/” 
 aix                                     ^^^^^^^^^^^^^^^^^^^^^^^??? what  
 mean? 
 感觉默默忽忽的,还是补台明白 
In C, all variants are stored in the stack. Some functions 
,as scanf use less_strict prototype check. So, the procedure  
as below will give u un-anticipated result: 
char i; 
int b; 
scanf("%d", &i); 
the scanf will fill in a integer result at the address i,  
to overlap the buffer of b.  
-- 
 
  舟摇摇而轻扬, 风飘飘以吹衣, 
  问征夫以前路, 恨晨光之曦微. 
 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.115.6.100]  

BBS水木清华站∶精华区