Moim zadaniem było napisanie programu, który wczytywałby dane z pliku na dwa różne sposoby i wyświetlenie czasu, w jakim się to dokonywało, w zależności od wielkości pliku. Mam na razie coś takiego. Ktoś pomoże?

#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int kopiuj(char *plik,char *plik2,int paczka)
{
    char *buf = malloc(paczka*sizeof(char));
    int ptr = open(plik,O_RDONLY);
    int ptr2 = open(plik2,O_RDWR | O_CREAT);
    if(ptr2 < 0)
        return 1;
    int size;
    while((size =read(ptr,buf,paczka))!=0)
    {
        write(ptr2,buf,size);
    }

}

int kopiuj2(char *plik,char *plik2,int paczka)
{
    char *buf = malloc(paczka*sizeof(char));
    FILE * ptr = fopen(plik,"r");
    FILE * ptr2 = fopen(plik2,"w");
    int size;
    while((size =fread(buf,1,paczka,ptr))!=0)
    {
    if(size>0)
        fwrite(buf,1,size,ptr2);
    }
}


int main(int argc,char*argv[])
{
    int i;
    for(i=0;i<argc;i++)
    printf("%s\n",argv[i]);
    if(!strcmp(argv[1],"kopiuj"))
    kopiuj(argv[2],argv[3],atoi(argv[4]));
    if(!strcmp(argv[1],"kopiuj2"))
    kopiuj(argv[2],argv[3],atoi(argv[4]));
    return 0;
}