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;
}