파일 자르기.
글쓴이: progcom / 작성시간: 금, 2005/03/18 - 11:06오전
갑작스레 필요하다는 요청이 들어와서, 날림으로 만든겁니다.
POSIX OS라면 split 를 쓰면 되지만, 불행하게도 원한 사람이 윈도우를 사용하고 있어서... :x
오류 확인도 제대로 안한 소스지만, 그냥 가지고 노는 셈치고~
#include <stdio.h>
#include <stdlib.h>
#define DEFAULT_SIZE 1024 * 200 /* 200kB */
int main(int argc, char* argv[])
{
FILE *fin;
FILE *fout;
size_t ss = DEFAULT_SIZE;
size_t sr;
int i;
char *buffer;
char filename[1024];
switch (argc) {
case 3:
ss = (size_t) atoi(argv[2]) * 1024;
case 2:
fin = fopen(argv[1], "r");
if (fin == NULL) {
fprintf(stderr, "file '%s' not found\n",
argv[1]);
return -1;
}
break;
default:
fprintf(stderr, "usage: split file [kB]\n");
return -1;
}
buffer = (char *) malloc(ss * sizeof(char));
for (i = 0; (sr = fread(buffer, sizeof(char), ss, fin)); i++) {
snprintf(filename, 1024, "%s.%02d", argv[1], i);
fout = fopen(filename, "w");
fwrite(buffer, sizeof(char), sr, fout);
fclose(fout);
}
free(buffer);
fclose(fin);
printf("file %s splited into %d piece\n", argv[1], i);
return 0;
}
Forums:


댓글 달기