- char *inFile = NULL;
- char *outFile = NULL;
- int inFd;
- int outFd;
- int inCc = 0;
- int outCc;
- int trunc=TRUE;
- long blockSize = 512;
- uintmax_t skipBlocks = 0;
- uintmax_t seekBlocks = 0;
- uintmax_t count = (uintmax_t) - 1;
- uintmax_t inTotal = 0;
- uintmax_t outTotal = 0;
- uintmax_t totalSize;
- uintmax_t readSize;
- unsigned char buf[BUFSIZ];
- char *keyword = NULL;
-
- argc--;
- argv++;
-
- /* Parse any options */
- while (argc) {
- if (inFile == NULL && (strncmp(*argv, "if", 2) == 0))
- inFile = ((strchr(*argv, '=')) + 1);
- else if (outFile == NULL && (strncmp(*argv, "of", 2) == 0))
- outFile = ((strchr(*argv, '=')) + 1);
- else if (strncmp("count", *argv, 5) == 0) {
- count = getNum((strchr(*argv, '=')) + 1);
- if (count < 0) {
- errorMsg("Bad count value %s\n", *argv);
- goto usage;
- }
- } else if (strncmp(*argv, "bs", 2) == 0) {
- blockSize = getNum((strchr(*argv, '=')) + 1);
- if (blockSize <= 0) {
- 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) {
- errorMsg("Bad skip value %s\n", *argv);
- goto usage;
- }
+ int i, ifd, ofd, oflag, sync_flag = FALSE, trunc = TRUE;
+ size_t in_full = 0, in_part = 0, out_full = 0, out_part = 0;
+ size_t bs = 512, count = -1;
+ ssize_t n;
+ off_t seek = 0, skip = 0;
+ FILE *statusfp;
+ char *infile = NULL, *outfile = NULL, *buf;