【发布时间】:2019-11-07 10:24:59
【问题描述】:
我必须将数据保存在项目的文件中(C 语言)。
所以我想使用fopen 来使用fprintf 在文件中输出我的字符串值。
所以,我愿意:
FILE * file;
file = fopen("./tmp.txt","w+");
outputData(); //my fonction to fprintf in the file
fclose(file);
但是当我这样做时,它不在当前目录中,而是在我的 我的计算机的用户目录(在 OSX 上),而不是应用程序午餐所在的当前目录。
那么,如何更改输出文件的当前目录?没有硬编码?
我正在执行我的程序:“/Users/Guillaume/OneDrive/Ephec/Os/Project1”
并且文件 tmp.txt 是在以下位置创建的: “/用户/纪尧姆” 我想在与我的项目相同的目录中创建文件
【问题讨论】:
-
请显示更多信息。显示你如何运行你的程序,并在你运行程序时显示你终端的当前目录是什么(使用 shell 命令
pwd)。 -
我不明白你到底想做什么。如果您想获取您的主目录的位置,请使用
getenv("HOME")。要获取当前目录的位置,请使用getenv("PWD") -
对不起,我在我的演讲之间有很长时间的修改
-
您似乎混淆了当前目录(也称为工作目录)和可执行文件所在的目录。对于后者,请参阅this question。