Нет ничего плохого в коде, который вы нам показали, так как следующее прекрасно работает:
#include <stdio.h>
#include <string.h>
#define _D_NAME_MAX 50
#define FROM "/some/local/path/from/"
#define TO "/some/local/path/to/"
char file[_D_NAME_MAX + 1] = {'\0'};
int funMove(char *file, char *from, char *to) {
printf ("[%s] [%s] [%s]\n", file, from, to);
return 0;
}
int main (void) {
strcpy (file, "fspec");
int x = funMove(file, FROM, TO);
printf ("[%d]\n", x);
return 0;
}
Он выводит:
[fspec] [/some/local/path/from/] [/some/local/path/to/]
[0]
, как и ожидалось, поэтому должна быть проблемав другом месте, если вы видите to
усеченным.