Загрузить файлы в «src»
This commit is contained in:
parent
a3ddb1ca51
commit
e729a1f5f7
34
src/mv.c
34
src/mv.c
@ -1,18 +1,44 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <libgen.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
int main(const int argc, char **argv) {
|
int move(const char *src, const char *dst) {
|
||||||
|
char *copy = strdup(src);
|
||||||
|
if (!copy)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
char *bname = basename(copy);
|
||||||
|
|
||||||
|
size_t len = strlen(dst) + strlen(bname) + 2;
|
||||||
|
char *new_path = malloc(len + 1);
|
||||||
|
if (!new_path)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
snprintf(new_path, len, "%s/%s", dst, bname);
|
||||||
|
|
||||||
|
int ret = 0;
|
||||||
|
if (rename(src, new_path) < 0)
|
||||||
|
ret = 1;
|
||||||
|
|
||||||
|
free(new_path);
|
||||||
|
free(copy);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(const int argc, const char **argv) {
|
||||||
if (argc <= 2) {
|
if (argc <= 2) {
|
||||||
printf("mv: missing operand\n");
|
printf("mv: missing operand\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 1; i < argc; i++) {
|
for (int i = 1; i < argc - 1; i++) {
|
||||||
if (rename(argv[i], argv[argc]) < 0) {
|
if (move(argv[i], argv[argc - 1])) {
|
||||||
fprintf(stderr, "mv: %s\n", strerror(errno));
|
fprintf(stderr, "mv: %s %s\n", argv[i], strerror(errno));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user