我想在 c 中将目录添加到文件名,但出现如下错误:
Segmentation fault (core dumped)
这是我的代码:
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';
最佳答案
char
放在单引号 (''
) 中,而不是双引号 (""
)。您正在为每个数组索引分配字符串文字。
关于将文件名连接到目录名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20421042/