关闭。 这个问题是题外话。 它目前不接受的答案。 了解详情 。
想要改善这个问题? 更新的问题,所以这是对话题的堆栈溢出。
我有一个关于从一个目录移动某些文件到另一个项目。 我已经全部完成,但其输出是那样的陌生。 我需要提供argsv阵列中的目标路径,但是当我尝试执行我的代码,它编译和作品,但显示包含在一个多路走错了路! 下面是相关的部分,如果你需要更多的代码,我会加! 先感谢您!
int main(int argc, char **argv)
{
int size = NFILES;
int index = -1;
file * files = malloc(size * sizeof(file));
listFilesRecursively(argv[1], &files, &size, &index);
if (index != -1) {
int N = atoi(argv[2]);
if(N==1) qsort(files, index + 1, sizeof(file), compPathname);
else if(N==2) qsort(files, index + 1, sizeof(file), compPathsize);
for (int i = 0; i <= index; ++i) {
char *dest = argv[3];
strcat(dest, "/");
strcat(dest, files[i].justname);
printf("%s : %s : %ld\n", files[i].name, dest , (long) files[i].file_info.st_size);
// if(rename(files[i].name, dest)==0) printf("Success!\n"); else printf("Failed!/n");
}
因此,这是主要的。 所需的输出是这样的(我有很多的文件):
./copyto.c : /home/nik/copyto.c : 676
Success!
./mvfilrd.c : /home/nik/mvfilrd.c : 957
Success!
./sortall.c : /home/nik/sortall.c : 992
Success!
等等......而是我得到
./newdir/newfile.txt : /home/nik/Music/newfile.txt : 0
Success!
./newdir/3.exe : /home/nik/Music/newfile.txt/3.exe : 0
Failed!/n./newdir/compil : /home/nik/Music/newfile.txt/3.exe/test : 0
Failed!/n./newdir/2.c : /home/nik/Music/newfile.txt/3.exe/test/exe : 0
然后更是垃圾
Failed!/n./newf.exe : /home/nik/Music/newfile.txt/3.exe/test/exe /1//Q�/~�dZ /�l�G^ /
��`(/4�a^d /a.txt/range/1.txt/1.exe/print.exe/filrd.exeC/2.exre/filrd.exe/2.exe/fi.txt/fil.txt/dest.txt/sorcopy.c/filew.exe/.filer.c.swp /progfilrd.exe/compile/myfile/.m
和第一个参数似乎已经崩溃,以及...