|  | #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 (write(1, zeros, ARRAY_SIZE(zeros)) < 0) | 
|  | return -1; | 
|  |  | 
|  | while (count > 0) { | 
|  | n = write(1, zeros, count < ARRAY_SIZE(zeros) ? | 
|  | count : ARRAY_SIZE(zeros)); | 
|  |  | 
|  | if (n < 0) | 
|  | return -1; | 
|  |  | 
|  | count -= n; | 
|  | } | 
|  |  | 
|  | return 0; | 
|  | } |