Я хочу, чтобы добавить каталог в имени файла в C, но я получаю сообщение об ошибке, как:Объединить имя файла в имени каталога
ошибки Segmentation (ядро сбрасывали)
Вот мой код :
char fname[255];
char directoryTmp[262];
/*Working Code for entering the filename fname with fgets() */
...
/* specify the directory */
directoryTmp[0] = "/";
directoryTmp[1] = "f";
directoryTmp[2] = "i";
directoryTmp[3] = "l";
directoryTmp[4] = "e";
directoryTmp[5] = "s";
directoryTmp[6] = "/";
/* Copy fname at the end of directoryTmp */
strcat(directoryTmp,fname);
/* new fname with the directory, should look like: "/files/afilename */
for(i=0;i<strlen(directoryTmp);i++){
fname[i] = directoryTmp[i];
}
// редактировать
ОК это мой новый код, но я все еще получаю тот же код ошибки:
char fname[255];
char directory[262];
directory[sizeof(directory) - 1] = '\0';
strncpy(directory,sizeof(directory) - 1, "/files/");
for(i=0;i<strlen(directory);i++){
fname[i] = directory[i];
}
puts(fname);
fname[sizeof(fname) - 1] = '\0';
Вы пробовали отладку? – elyashiv
Помимо проблемы, упомянутой Александром в его ответе, вы теряете конечный нулевой символ после инициализации 'directoryTmp'. – Barmar
Разве ваш компилятор не выкрикивает предупреждения, подающие эти источники. – alk