|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3117 [º¹»ç]
¾È³çÇϼ¼¿ä Á¶¾ðÇØÁֽŠ´ë·Î ºÐÇÒ ÇÕº´ÇÔ¼ö´Â ¿Ï¼ºÀ» ÇÏ¿´½À´Ï´Ù.
ÇöÀç ¸Þ¸ð¸® »ç¿ë¿¡ °üÇØ °³¼±À» ÇÏ°í ½ÍÀºµ¥¿ä.
»ç¿ë¹ýÀº »ç¿ëÀڷκÎÅÍ ÆÄÀÏ À̸§°ú ºÐÇÒ Å©±â¸¦ ÀÔ·Â¹Þ¾Æ Æ¯Á¤ ÆÄÀÏÀ» ºÐÇÒ ÇÏ´Â ÆÄÀÏÀä.
¿ø·¡´Â Áö±Ý ÁÖ¼®Ã³¸®ÇÑ ºÎºÐ´ë·Î buf¶ó´Â º¯¼ö¸¦ ÁØ ÈÄ ¸Þ¸ð¸® µ¿ÀûÇÒ´çÀ» ÇØ¼ »ç¿ëÀÚÀÇ ÀÔ·Â Å©±â¸¸Å Çѹø¿¡ µ¥ÀÌÅ͸¦
Àоî¿Ô´Âµ¥ ÀÌ·±½ÄÀ¸·Î ¾ÈÇÏ°í ¹öÆÛÀÇ Å©±â¸¦ 2kb·Î Á¦ÇÑÇØ¼ ±×¸¸Å¾¿¸¸ ¸Þ¸ð¸® ÇÒ´çÀ» ÇØ¼ Àоî¿À·Á°í ÇÕ´Ï´Ù.
±×·¡¼ for¹®À¸·Î »ç¿ëÀÚÀÇ ÀÔ·Â Å©±â¸¦ ¹öÆÛ Å©±â·Î ³ª´«ÈÄ ¹Þ¾Æ¿À·Á°í Çߴµ¥ ¿øÇÏ´Â °á°ú°¡ ³ª¿ÀÁö ¾Ê³×¿ä.
¾îµð°¡ ¹®Á¦Àΰ¡¿ä? Á¶¾ð ºÎʵ右´Ï´Ù.
ÇöÀç OS´Â ¿ìºÐÅõÀ̸ç,
¸í·É¾î ÇüÅ´ ./split test.txt 10À» ÀÔ·ÂÇϸé
test.txt ¿øº» ÆÄÀÏÀÌ 27kbÀϽÃ
test.txt0 = 10kb
test.txt1 = 10kb
test.txt2 = 7kb
ÀÌ·± Çü½ÄÀÔ´Ï´Ù.
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define BUF_SIZE 2048
int main(int argc, char *argv[])
{
FILE *ifp, *ofp;
int size = atoi(argv[2])*1024;
char outline[50];
char copy_buf[BUF_SIZE];
int rdCnt, fileCnt = 0;
int n_copy=0;
long file_size;
int i=0;
int sum=0;
//char *buf
if(argc != 3)
exit(-99);
if(!(ifp = fopen(argv[1], "rb")) ) {
printf("Open error\n");
return 0;
}
//buf = (char*)mallor(size);
while( (rdCnt = fread(copy_buf,1,BUF_SIZE,ifp))>0) {
sprintf(outline,"%s%d",argv[1], fileCnt++);
ofp = fopen(outline,"wb");
sum = size/BUF_SIZE;
for(i=0; i<sum; i++)
{
fwrite(copy_buf,1,rdCnt,ofp);
}
fclose(ofp);
}
fclose(ifp);
char rmrm[50];
sprintf(rmrm, "rm -f %s", argv[1]);
system(rmrm);
}
|
Hit : 3871 Date : 2011/08/03 09:51
|