|
|
本人在Suse9.2下在用标准C函数库中的getline()函数时出现了一个奇怪的问题(本来是中等规模的一个程序,现在已经把问题定位在了这6行代码内)
file=fopen("/home/tiger/111","r");
while(TRUE){
/*printf("");*/
if(getline(&line,n,file)==-1)break;
printf("%s",line); }
fclose(file);
其中几个变量的类型分别为:char* line; int* n; FILE* file;
代码就是要把一个文本文件"/home/tiger/111"的内容显示在终端上,编译正常,在运行时正确显示了文件中的内容,但是在开头出现报错信息:
lookup 0x08048000 0x00000328 -> 0x404ba000 0x00041780 /1 printf
后来反复实验发现只要在getline()函数前面任何位置运行printf(),例如,把以上代码中的注释去掉后运行报错信息就没有了。
请高手指点一下这是怎么回事,谢谢!! |
|