#define DISABLE_SIGN_COMPARE_WARNINGS | |
#include "test-tool.h" | |
#include "git-compat-util.h" | |
int cmd__genzeros(int argc, const char **argv) | |
{ | |
/* static, so that it is NUL-initialized */ | |
static const char zeros[256 * 1024]; | |
intmax_t count; | |
ssize_t n; | |
if (argc > 2) { | |
fprintf(stderr, "usage: %s [<count>]\n", argv[0]); | |
return 1; | |
} | |
count = argc > 1 ? strtoimax(argv[1], NULL, 0) : -1; | |
/* Writing out individual NUL bytes is slow... */ | |
while (count < 0) | |
if (xwrite(1, zeros, ARRAY_SIZE(zeros)) < 0) | |
die_errno("write error"); | |
while (count > 0) { | |
n = xwrite(1, zeros, | |
count < ARRAY_SIZE(zeros) | |
? count : ARRAY_SIZE(zeros)); | |
if (n < 0) | |
die_errno("write error"); | |
count -= n; | |
} | |
return 0; | |
} |