将文件名连接到目录名

标签 c file strcat

我想在 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/

相关文章:

linux - Octave strcat 忽略添加的空格

c - 跳转到特定行的末尾

c - 在C中有效地初始化结构内部的指针

c - 程序正在打印带有其他元素和垃圾值的数组

django - 如何将 Django 应用程序测试拆分到多个文件中

c - 为什么 strcat 会导致崩溃?

c - 有人记得旧的 C 库 TCXL 吗?

iOS 文件应用程序无法从另一个文件夹打开我的应用程序

file - Hadoop:将文件或文件路径发送到映射缩减作业

c - strcat() 不会退出