gpt4 book ai didi

c - 在 C 中使用#define 进行字符串连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:55 25 4
gpt4 key购买 nike

我正在尝试 concatenate strings 和 2/3 strings 是路径并且是 defined#define

例如:

#define BASE_PATH "foo/bar"
#define BIN_PATH "baz/bin"

我希望能够定向到预定义的路径。一个示例用例是查看该文件夹的内容。

char path_of_executable[256];
printf ("%s \n",executable);
snprintf(path_of_executable, sizeof 256, "%s,%s,%s",BASE_PATH,executable,BIN_PATH);
printf("%s \n",path_of_executable);
chdir(path_of_executable);
execlp("ls","ls","-l",NULL);

path_of_executable 被打印为 /fo

我无法定向到该路径,而是打印出当前文件夹中的文件。知道可能是什么问题吗?

最佳答案

您正在使用 sizeof 256,它转换为 sizeof int,在您的平台上显然是 4。这就是生成的字符串不超过 4 个字符(包括空终止符)的原因。请改用 sizeof path_of_executable

关于c - 在 C 中使用#define 进行字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17551975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com