제가 실현에 문제가있다 :문제
struct stat fsd;
stat(argv[argc - 1], &fsd);
if ((fsd.st_mode & S_IFMT) == S_IFDIR) {
unsigned int i;
for (i = src; i < argc - 1; i++) {
char *xpath = strcat(argv[argc - 1], "/");
xpath = strcat(argv[argc - 1], argv[i]);
if (cpf(argv[i], xpath) == 0) {
printf("%s -> %s\n", argv[i], xpath);
}
}
}
예 명령 ./cp F1 F2 F3, F4 DIR
어디 : f * - 파일과 디렉토리 디렉토리. 그래서 파일을 dir에 복사해야하지만 dir에 대한 올바른 경로를 만들 수 없습니다.
는 출력 :
f1 -> dir/f1
f2 -> dir/f1/f2
f3 -> dir/f1/f2/f3
f4 -> dir/f1/f2/f3/f4
그러나 내가이 필요합니다
f1 -> dir/f1
f2 -> dir/f2
f3 -> dir/f3
f4 -> dir/f4
정말 그것을 해결하는 방법을 모르고 :(
'strcat()'에 대한 맨 페이지를 읽어보십시오. 버퍼가 너무 작습니다. –
'argv [argc-1]'은 끝에 쓰려고하지 않습니다. 쓸/추가 할 버퍼를 만듭니다. – mah