perror:没有这样的文件或目录

时间:2012-04-08 04:57:04

标签: c fwrite temp assertion

我有功能。 FA-> file_temp是FA->文件的副本。 FA-> file_temp处于TEMP目录中。 (C:\用户\用户\应用程序数据\本地\温度)

stat(FA->file, &st_file);
filesize = st_file.st_size;
ffile = fopen(FA->file_temp, "rb");
if (ffile == NULL) perror("NULL!!!!!!!!!!!!!1\n");

strcpy(str, FA->file_dir);
strcat(str, "packed");
temp_name(str) ;
strcpy( FA->tmpname , str);
ftmpname = fopen(FA->tmpname, "wb");
if (ftmpname == NULL) perror("NULL!!!!!!!!!!!!!1\n");
 if (rc = encode(ffile, ftmpname, filesize)!=0) 
     longjmp(Berror, rc);

1 个答案:

答案 0 :(得分:1)

Perchance,您的计划是否在'NULL!!!!!!!!!!!!'之前大喊assertion failed?关于断言的消息是fo为空。

我在这里的时候,

if (rc = encode(ffile, ftmpname, filesize)!=0) 

可能不是你想要的。这会将encode(ffile, ftmpname, filesize)!=0的所有内容存储到rc中。你可能意味着:

if ((rc = encode(ffile, ftmpname, filesize))!=0)