재미있는 프로젝트로서 iso 파일을 만드는 프로그램을 작성한다고 생각했습니다. 내가 할 수있는 한, 작동하지만 30 초마다 4KB 만 읽는다. 합리적인 속도로 CD-ROM 드라이브를 느리게하려면 eject -x 11을 사용했습니다. 드라이브가 없으면 드라이브가 최대 속도로 실행되고 프로세스가 상당히 빨리 종료됩니다. 이 방법을 더 빨리/더 좋게 만들 수있는 제안은 많이 감사하겠습니다.C에서 느린 디스크 이미지 생성 (iso 9660)
#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
문자열 함수의 굵게 사용하여 임의의 이진 데이터를 읽고 쓸 수 있습니다 ... –