• 6938阅读
  • 4回复

文件操作出现段错误,请问大家该如何解决呢?? [复制链接]

上一主题 下一主题
离线nanawoaini
 
只看楼主 倒序阅读 楼主  发表于: 2006-08-03
在qt下用fopen fread fclose对一个文件进行操作,同时将这些操作放在一个button的slot中,每次点击按扭即提示段错误同时程序终止,请问各问赐教该如何解决呢!!十分感谢啊,急等!!!相关代码如下:
connect(open,SIGNAL( clicked() ),this, SLOT( OpenFile(unsigned char *) ) );


void CCD_sample::OpenFile(unsigned char *buffer )
{
FILE *fp;
fp=fopen(sourcefile,"r");
fread(buffer,1,20000,fp);
fclose(fp);
}


请大家帮我分析一下问题出在哪里啊!!!
离线xinqingfly

只看该作者 1楼 发表于: 2006-08-03
先判断你的文件打开正确没有,再去读文件内容,判断一下fp
菜鸟也是鸟
离线ediwon
只看该作者 2楼 发表于: 2006-08-04
当前目录有sourcefile文件吗?

最好先
.....
if ( !(fp=fopen(sourcefile,"r")) )
{
    printf("can't open the file about sourcefile");
    sleep(5);
    exit(1);
}

fread(buffer,1,20000,fp);
fclose(fp);
.....
BLOG:
http://www.ediwon.com
-------------------------------
离线nick
只看该作者 3楼 发表于: 2006-08-04
首先 signal 和 slot并不匹配。
其次OpenFile的参数unsigned char *buffer 并没分配内存,这样拷贝不段错误才是怪事。
Qt...
离线nanawoaini
只看该作者 4楼 发表于: 2006-08-04
现在的问题是,我在构造函数中打开文件并读写内容完全没有问题,但是如果将文件的读写放在slot中就出现段错误,请问signal和slot为什么不匹配啊!! 还有我在构造函数中已经定义了unsigned char buffer[20000],这样不可以吗??请您赐教!!
快速回复
限100 字节
 
上一个 下一个