作为一个有趣的项目,我想我会写一个程序来制作iso文件。据我所知,它可以工作,但每30秒只读取4KB。我使用弹出-x 11将我的光驱驱动器放慢到合理的速度。如果没有它,驱动器将全速运行,并且很快就会杀死该进程。任何建议,使这更快/更好将非常感激。真的很慢的光盘镜像创建(ISO 9660)在C
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define BUFFSIZE 4092
int main(int argc, char **argv)
{
FILE *fp = fopen("/dev/cdrom", "r");
FILE *file = fopen(strcat(argv[1], ".iso"), "w");
printf("Copying...\n");
while(!feof(fp))
{
char *line=(char *)malloc(sizeof(char) * BUFFSIZE);
fgets(line, BUFFSIZE, fp);
fprintf(file, "%s",line);
free(line);
}//end while
fclose(fp);
fclose(file);
printf("Done!\n");
return 0;
}//end main
您可能想要以二进制模式打开文件;像这样覆盖'argv [1]'可能是个坏主意;摆脱铸造 – pmg 2011-03-29 21:39:25
大胆使用字符串函数来读/写任意二进制数据... – 2011-03-29 21:40:55