Stuf
This commit is contained in:
37
dd.c
37
dd.c
@@ -32,6 +32,7 @@
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
static const char dd_usage[] =
|
||||
"dd [if=name] [of=name] [bs=n] [count=n]\n\n"
|
||||
@@ -92,27 +93,20 @@ static long getNum (const char *cp)
|
||||
|
||||
extern int dd_main (int argc, char **argv)
|
||||
{
|
||||
const char *inFile;
|
||||
const char *outFile;
|
||||
const char *inFile = NULL;
|
||||
const char *outFile = NULL;
|
||||
char *cp;
|
||||
int inFd;
|
||||
int outFd;
|
||||
int inCc = 0;
|
||||
int outCc;
|
||||
int skipBlocks;
|
||||
int blockSize;
|
||||
long count;
|
||||
long intotal;
|
||||
long outTotal;
|
||||
size_t blockSize = 512;
|
||||
//uintmax_t skipBlocks = 0;
|
||||
uintmax_t count = (uintmax_t)-1;
|
||||
uintmax_t intotal;
|
||||
uintmax_t outTotal;
|
||||
unsigned char *buf;
|
||||
|
||||
inFile = NULL;
|
||||
outFile = NULL;
|
||||
blockSize = 512;
|
||||
skipBlocks = 0;
|
||||
count = 1;
|
||||
|
||||
|
||||
argc--;
|
||||
argv++;
|
||||
|
||||
@@ -125,14 +119,14 @@ extern int dd_main (int argc, char **argv)
|
||||
else if (strncmp("count", *argv, 5) == 0) {
|
||||
count = getNum ((strchr(*argv, '='))+1);
|
||||
if (count <= 0) {
|
||||
fprintf (stderr, "Bad count value %ld\n", count);
|
||||
fprintf (stderr, "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 %d\n", blockSize);
|
||||
fprintf (stderr, "Bad block size value %s\n", *argv);
|
||||
goto usage;
|
||||
}
|
||||
}
|
||||
@@ -162,13 +156,8 @@ extern int dd_main (int argc, char **argv)
|
||||
intotal = 0;
|
||||
outTotal = 0;
|
||||
|
||||
if (inFile == NULL) {
|
||||
struct stat statBuf;
|
||||
if (inFile == NULL)
|
||||
inFd = fileno(stdin);
|
||||
if (fstat(inFd, &statBuf) < 0)
|
||||
exit( FALSE);
|
||||
count = statBuf.st_size;
|
||||
}
|
||||
else
|
||||
inFd = open (inFile, 0);
|
||||
|
||||
@@ -227,9 +216,9 @@ extern int dd_main (int argc, char **argv)
|
||||
close (outFd);
|
||||
free (buf);
|
||||
|
||||
printf ("%ld+%d records in\n", intotal / blockSize,
|
||||
printf ("%ld+%d records in\n", (long)(intotal / blockSize),
|
||||
(intotal % blockSize) != 0);
|
||||
printf ("%ld+%d records out\n", outTotal / blockSize,
|
||||
printf ("%ld+%d records out\n", (long)(outTotal / blockSize),
|
||||
(outTotal % blockSize) != 0);
|
||||
exit( TRUE);
|
||||
usage:
|
||||
|
Reference in New Issue
Block a user