Ahoj nevíte někdo kde dělách chybu? po binárním přečtení celého souboru bych ho chtěl po částech zapsat do jiného, ale to se mi podaří pouze pokud se jedná o text. Např. u obrázků má obrázek správnou velikost, ale nezobrazí se.
FILE *op;
FILE *obr;
op = fopen("/home/honza/klient/dir/output.jpeg", "ab");
obr = fopen("/home/honza/klient/index.jpeg", "rb");
if (op == NULL) {
fputs("File error", stderr);
return -1;
}
char buf[8192];
int lSize;
// obtain file size:
fseek (obr , 0 , SEEK_END);
lSize = ftell (obr);
rewind (obr);
// copy the file into the buffer:
fread (buf,1,lSize,obr);
//budu udrzovat offset od kud budu cist
int offset = 0;
int BLOCK_SIZE = 16;
int size = 4582;
char idata[BLOCK_SIZE];
while (1) {
int length;
//offset je dostatecne maly, ctu vsech 16B
if (offset + BLOCK_SIZE < size) {
length = BLOCK_SIZE;
} else {
length = size - offset;
}
memset(idata, 0, BLOCK_SIZE);
strncpy(idata, buf + offset, BLOCK_SIZE);
fwrite(idata, 1, length, op);
offset += BLOCK_SIZE;
if (offset >= size) {
break;
}
}
fclose(op);
fclose(obr);