Я хочу сгенерировать ровно 125000000 байт или 10 ^ 9 бит случайных чисел, но вместо этого я получаю 125000007 байт данных. Как отрезать последние 7 байт из файла?
Я пробовал это
int truncate(const char *path, off_t length);
truncate("/tmp/F.bin", 7);
Это рабочий код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
union
{
unsigned int uc;
unsigned char byte[4];
} rand_data;
int main(){
FILE * fp;
fp = fopen("/tmp/F.bin", "wb");
unsigned int size = 0;
srand(501459);
while(size <= 125000000) {
rand_data.uc = rand();
fprintf(fp, "%x%x%x%x", rand_data.byte[3], rand_data.byte[2], rand_data.byte[1], rand_data.byte[0]);
size = ftell(fp);
}
printf("%d", size);
fclose(fp);
return 0;
}