第C否則UNIX FUNC 「CP」 的模擬和我有實現麻煩:麻煩與strcat的[C用於UNIX]
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 * - 文件和目錄 - 目錄。 所以,文件需要複製到目錄中,但我無法爲目錄創建正確的路徑。
輸出:
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()'的手冊頁,真的。你的緩衝區太小了。 – 2013-05-27 14:04:54
'argv [argc - 1]'不適合你寫在最後。創建自己的緩衝區以寫入/追加。 – mah