flush console to ensure progress output

This commit is contained in:
ari melody 2024-02-12 02:14:41 +00:00
parent 247a66cad1
commit a258b4bbea
Signed by: ari
GPG key ID: CF99829C92678188

71
main.c
View file

@ -3,46 +3,51 @@
int main() { int main() {
unsigned long long int size = 0; unsigned long long int size = 0;
unsigned int gib = 0; unsigned int gib = 0;
printf("please enter the number of gibibytes (GiB) you would like to allocate (1 GiB = 1073741824 bytes):\n> "); printf("please enter the number of gibibytes (GiB) you would like to allocate (1 GiB = 1073741824 bytes):\n> ");
unsigned int digit = 0; unsigned int digit = 0;
while (1) { while (1) {
unsigned char input = getchar();
if (input == '\n') break;
if (input < '0' || input > '9') continue;
if (digit > 0) gib = gib * 10;
gib = gib + (unsigned int) input - 48;
digit++;
}
size = (unsigned long long int) gib * 1024 * 1024 * 1024;
printf("you are about to allocate %d GiB (%llu bytes) of heap memory. are you sure? (y/n)\n> ", gib, size);
unsigned char input = getchar(); unsigned char input = getchar();
if (input == '\n') break; if (input != 'y') return 0;
if (input < '0' || input > '9') continue; while (getchar() != '\n');
if (digit > 0) gib = gib * 10; printf("please wait");
fflush(stdout);
gib = gib + (unsigned int) input - 48; unsigned long long int* wtf = (unsigned long long int*) malloc(size);
digit++;
}
size = (unsigned long long int) gib * 1024 * 1024 * 1024; for (unsigned long long int i = 0; i < size / sizeof(long long int); i++) {
wtf[i] = 0x80085;
if (i > 0 && i % (1024 * 1024 * 1024 / sizeof(long long int)) == 0) {
printf(".");
fflush(stdout);
}
}
printf("\n");
printf("you are about to allocate %d GiB (%llu bytes) of heap memory. are you sure? (y/n)\n> ", gib, size); printf("%d GiB (%llu bytes) of heap memory has been allocated. you are insane.\n", gib, size);
printf("press ENTER to release this memory, or CTRL+C to exit the program.\n");
unsigned char input = getchar(); getchar();
if (input != 'y') return 0;
while (getchar() != '\n');
printf("please wait"); free(wtf);
unsigned long long int* wtf = (unsigned long long int*) malloc(size);
for (unsigned long long int i = 0; i < size / sizeof(long long int); i++) { return 0;
wtf[i] = 0x80085;
if (i > 0 && i % (1024 * 1024 * 1024 / sizeof(long long int)) == 0) printf(".");
}
printf("\n");
printf("%d GiB (%llu bytes) of heap memory has been allocated. you are insane.\n", gib, size);
printf("press ENTER to release this memory, or CTRL+C to exit the program.\n");
getchar();
free(wtf);
return 0;
} }