typedef unsigned long long int uintmax_t;
#endif
-static const char dd_usage[] =
- "dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]\n\n"
- "Copy a file, converting and formatting according to options\n\n"
- "\tif=FILE\tread from FILE instead of stdin\n"
- "\tof=FILE\twrite to FILE instead of stdout\n"
- "\tbs=n\tread and write n bytes at a time\n"
- "\tcount=n\tcopy only n input blocks\n"
- "\tskip=n\tskip n input blocks\n"
- "\tseek=n\tskip n output blocks\n"
-
- "\n"
- "Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)\n";
-
-
-
extern int dd_main(int argc, char **argv)
{
char *inFile = NULL;
else if (strncmp("count", *argv, 5) == 0) {
count = getNum((strchr(*argv, '=')) + 1);
if (count <= 0) {
- fprintf(stderr, "Bad count value %s\n", *argv);
+ errorMsg("Bad count value %s\n", *argv);
goto usage;
}
} else if (strncmp(*argv, "bs", 2) == 0) {
blockSize = getNum((strchr(*argv, '=')) + 1);
if (blockSize <= 0) {
- fprintf(stderr, "Bad block size value %s\n", *argv);
+ errorMsg("Bad block size value %s\n", *argv);
goto usage;
}
} else if (strncmp(*argv, "skip", 4) == 0) {
skipBlocks = getNum((strchr(*argv, '=')) + 1);
if (skipBlocks <= 0) {
- fprintf(stderr, "Bad skip value %s\n", *argv);
+ errorMsg("Bad skip value %s\n", *argv);
goto usage;
}
} else if (strncmp(*argv, "seek", 4) == 0) {
seekBlocks = getNum((strchr(*argv, '=')) + 1);
if (seekBlocks <= 0) {
- fprintf(stderr, "Bad seek value %s\n", *argv);
+ errorMsg("Bad seek value %s\n", *argv);
goto usage;
}
cleanup:
/* Note that we are not freeing memory or closing
* files here, to save a few bytes. */
-#if 0
+#ifdef BB_FEATURE_CLEAN_UP
close(inFd);
close(outFd);
free(buf);