Rev 3641 | Rev 3643 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3641 | Rev 3642 | ||
|---|---|---|---|
| Line 67... | Line 67... | ||
| 67 | return -1; |
67 | return -1; |
| 68 | 68 | ||
| 69 | return (int) t1; |
69 | return (int) t1; |
| 70 | } |
70 | } |
| 71 | 71 | ||
| 72 | static size_t copy_file(const char *src, const char *dest, size_t blen, int vb) |
72 | static int64_t copy_file(const char *src, const char *dest, size_t blen, int vb) |
| 73 | { |
73 | { |
| 74 | int fd1, fd2, bytes = 0; |
74 | int fd1, fd2, bytes = 0; |
| 75 | off_t total = 0; |
75 | off_t total = 0; |
| 76 | size_t copied = 0; |
76 | int copied = -1; |
| 77 | char *buff = NULL; |
77 | char *buff = NULL; |
| 78 | 78 | ||
| 79 | if (vb) |
79 | if (vb) |
| 80 | printf("Copying %s to %s\n", src, dest); |
80 | printf("Copying %s to %s\n", src, dest); |
| 81 | 81 | ||
| 82 | if (-1 == (fd1 = open(src, O_RDONLY))) { |
82 | if (-1 == (fd1 = open(src, O_RDONLY))) { |
| 83 | printf("Unable to open source file %s\n", src); |
83 | printf("Unable to open source file %s\n", src); |
| 84 | return 0; |
84 | return copied; |
| 85 | } |
85 | } |
| 86 | 86 | ||
| 87 | if (-1 == (fd2 = open(dest, O_CREAT))) { |
87 | if (-1 == (fd2 = open(dest, O_CREAT))) { |
| 88 | printf("Unable to open destination file %s\n", dest); |
88 | printf("Unable to open destination file %s\n", dest); |
| 89 | return 0; |
89 | return copied; |
| 90 | } |
90 | } |
| 91 | 91 | ||
| 92 | total = lseek(fd1, 0, SEEK_END); |
92 | total = lseek(fd1, 0, SEEK_END); |
| 93 | 93 | ||
| 94 | if (vb) |
94 | if (vb) |
| Line 109... | Line 109... | ||
| 109 | write(fd2, buff, blen); |
109 | write(fd2, buff, blen); |
| 110 | } while (bytes > 0); |
110 | } while (bytes > 0); |
| 111 | 111 | ||
| 112 | if (bytes == -1) { |
112 | if (bytes == -1) { |
| 113 | printf("Error copying %s\n", src); |
113 | printf("Error copying %s\n", src); |
| 114 | copied = 0; |
114 | copied = bytes; |
| 115 | goto out; |
115 | goto out; |
| 116 | } |
116 | } |
| 117 | 117 | ||
| 118 | out: |
118 | out: |
| 119 | close(fd1); |
119 | close(fd1); |
| Line 146... | Line 146... | ||
| 146 | } |
146 | } |
| 147 | 147 | ||
| 148 | int cmd_cp(char **argv) |
148 | int cmd_cp(char **argv) |
| 149 | { |
149 | { |
| 150 | unsigned int argc, buffer = CP_DEFAULT_BUFLEN, verbose = 0; |
150 | unsigned int argc, buffer = CP_DEFAULT_BUFLEN, verbose = 0; |
| 151 | int c, opt_ind, ret = 0; |
151 | int c, opt_ind; |
| - | 152 | int64_t ret; |
|
| 152 | 153 | ||
| 153 | argc = cli_count_args(argv); |
154 | argc = cli_count_args(argv); |
| 154 | 155 | ||
| 155 | for (c = 0, optind = 0, opt_ind = 0; c != -1;) { |
156 | for (c = 0, optind = 0, opt_ind = 0; c != -1;) { |
| 156 | c = getopt_long(argc, argv, "hvVfrb:", long_options, &opt_ind); |
157 | c = getopt_long(argc, argv, "hvVfrb:", long_options, &opt_ind); |