Предисловие: Я упростил проблему в своих ключевых функциях, поэтому, если это звучит странно, это потому, что это небольшой аспект всей программы.Создание файла случайного размера [1 ... 500] KB
Проблема:
Я хочу создать что-то вроде 100 текстовых файлов: Я буду цикл и использовать мой счетчик цикла назвать файлы.
Затем я хочу заполнить каждый файл случайными строками. Для этого я использую мою String, определенную ниже. Я хочу заполнить файл с [1KB до 500KB].
struct String // And yes I am using my own String library.
{
char *c;
int length;
int maxLength;
}
Предположим, что у меня открыт файл (возможно, в данный момент я его создаю, поэтому он пуст). Теперь я проверил бы что-то вроде этого.
int range = Random.Range(0,500);
Я бы получил номер, который предопределил бы размер файла. Так что если range == 100
, тогда файл будет заполнен 100 КБ «данных».
Я бы сначала создал свою строку.
// Maybe making this 100 chars would help?
String *s1 = makeString("abcdefghijklmnopqrstuvwxyz");
Как бы я выяснить, сколько раз я должен написать свою строку s1
в файл, чтобы сделать его размер range
? Предпочтительно, прежде чем писать в файл, я бы не захотел писать сначала, а затем проверить, а затем написать еще раз.
И как бы получить случайное целочисленное значение в C? Я использовал Random.Range в C#.
Вы имеете в виду предпочтительный размер файла, деленный на длину строки: 'range * 1000/s1-> length;'? – Kninnug
Чтобы упростить задачу, убедитесь, что ваша строка имеет размер, разделяющий 1024, что представляет собой количество байтов в килобайте. Вам нужно написать строку '(range * 1024)/s1-> length' раз, чтобы получить желаемый размер файла. – naitoon