如何解决CS50x恢复可用于debug50,但在使用check50测试时会超时
我目前正在处理CS50x恢复问题集4,并且我已经完成了编码,并且在使用debug50时可以正常工作,但是在使用check50时它会返回以下内容:
:) recovery.c存在。 :) recovery.c编译。 :)处理缺乏取证图像 :(正确恢复000.jpg 在等待程序退出时超时 :(正确恢复中间图像 在等待程序退出时超时 :(可正确恢复049.jpg 等待程序退出时超时
一切都超时了。
我也在控制台中看到了这一点,因为它在运行时似乎停留在开始时。 这是我的代码:
#include <stdlib.h>
int main(int argc,char *argv[])
{
//check for wrong syntax
if (argc != 2)
{
printf("Usage: ./recover image\n");
return 1;
}
//open card
FILE *file = fopen(argv[1],"r");
//check if file exists
if (file != NULL)
{
//vars
unsigned char buffer[512];
int files = 0;
FILE *jpg;
//read file until end
while (fread(buffer,512,1,file) == 1)
{
//check for jpg beginning
if (buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff && (buffer[3] & 0xf0) == 0xe0)
{
//vars
char jpgname[8];
//generate name
sprintf(jpgname,"%03i.jpg",files);
//do only if jpg exists
if (jpg != NULL)
{
fclose(jpg);
}
//create new file with generated name
jpg = fopen(jpgname,"w");
//increment file counter
files++;
}
//only do when jpg exists
if (jpg != NULL)
{
//write data to file
fwrite(buffer,jpg);
}
}
if (jpg != NULL)
{
//close final jpg
fclose(jpg);
}
//close file finally
fclose(file);
}
else
{
//when file not found
printf("File not found\n");
return 1;
}
} ```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。