【发布时间】:2021-03-21 23:53:43
【问题描述】:
我有一个头文件,其中有一个函数 load_files(),它应该将项目目录中的特定文件复制到用户计算机的某个路径中。问题是我在我的项目目录中找不到文件,我什至找不到项目目录。 这是我的代码。
void load_database_files(const char * prog_dir) {
char cmd[100];
const char * proj_path = getenv("PWD");
sprintf(cmd, "cp -r %s%s %s", proj_path, "/src/database/warehouse.db", prog_dir);
system(cmd);
exit(1);
}
我希望 PWD 指向项目目录,我可以从中找到文件,但它返回的是 $HOME 的路径。我该如何解决这个问题?我正在使用 gnome-builder IDE。如果我需要提供任何其他相关信息,请告诉我。
【问题讨论】:
-
我有一个头文件 load_files() ,
load_files()查看使用的样式在C或C++和许多编程语言中称为函数 -
在较轻的笔记上,最好打印
cmd,然后在system(cmd);中使用,以确保我们调用正确。 -
对不起,我修好了)。是的,我可能应该这样做以进行正确的调试。
-
您还应该使用
snprintf()(并检查最终字符串是否太长而无法在cmd中保存的情况)而不是sprintf()。 -
@Shawn 是的,我打算稍后改变它。有什么想法可以解决 PWD 问题吗?