Đề viết chương trình tách file thành nhiều file nhỏ , nhưng khi mình tách ra thì bi sum(kích thước các file chia ) < kích thước ban đầu của file gốc why???
đầy là code, ai chỉ giúp với mình sai ơ đâu ???


Code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "c:\text\define.h"
#include "c:\text\file.h"

char *  Split_option(char *t)

{
    char *p,*s;
    int k;
    s=strdup(t);
    p=strrchr (s, '.');
    if(p) k=p-s;
    else k=strlen(s);
    strncpy(s+k,".xxx",4);
    return s;
}
void Split_file(FILE *split, char *filename  , size_t fixsize  , char * buf )
{   int k,i=1;
    FILE *f;
    size_t numberread;
    k=strlen(filename);
    do
    {
            snprintf(filename +k,4,"%03d", i++);
            numberread=fread(buf ,sizeof(char), fixsize , split);
            f=fopen(filename, "wb");
            fwrite(buf,numberread , sizeof (char), f);
            fclose (f);
            printf("file name creation %s : [%lu byte ] \n",filename, numberread);

    } while (numberread >= fixsize  );
}
int  main ( int arg , char * argv[])
{   size_t size;
    char *  buff, *filename;

    if( arg <2  || arg> 3)
    {
        pr("false syntax ");
        pr("Split file_name_div  number[KB] ");
        return 1;
    }
    fcr(f,argv[1],"rb");
    fer(f);
    size = (arg==2)?128:(size_t)(atol(argv[2]));
    size<<=10;
    buff=(char *) calloc(size, sizeof( char ));
    if(!buff)
    {
        buff=(char*) calloc( 2048, sizeof( char));
        if( !buff) { free( buff) ;return 2;}
    }
    filename=Split_option(argv[1]);
    Split_file(f,filename, size , buff );
    fclose (f);
    free(buff);
}
KQ là khi minh tách file PDF 1000kb với size 100kb -> ra có 4 file
tách file text thi dc
cho minh hỏi luon sao đăng dc code màu vậy ,minh post khó nhìn wa,mong thông cảm