파일 자르기.
글쓴이: 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:
댓글 달기