【发布时间】:2014-05-31 21:58:38
【问题描述】:
我正在 Mac 上制作一个简单的应用程序(OSX Mavericks,使用 clang 编译)。 问题是当我尝试使用相对路径打开文件时,它不起作用。如果我使用绝对路径,它就可以工作。
例如,如果我尝试:fp = fopen("file.txt", "r");
它返回NULL。
只有在我使用时才有效:fp = fopen(" User/UserName/Project_folder/file.txt", "r");
(项目文件夹是我正在编译的文件夹,里面有我的file.txt)
该文件位于完全相同的目录中。
我该如何解决这个问题?
同样的代码前段时间运行良好,现在这个代码和其他使用 fopen 的代码出现了同样的问题。
【问题讨论】:
-
file.txt 需要位于您运行程序的同一目录中。请参阅下面的帖子。
-
fp = fopen("./file.txt", "r");工作吗? -
@Andro47:添加
./无济于事;这仍然是一个相对路径。 -
fp = fopen("./file.txt", "r");不要帮助,现在我更好地理解了这个问题,但我无法解决。如果我使用终端运行编译的文件,它会找到文件(工作目录与文件相同)。但是当我双击打开它时,它会运行,但工作目录与文件目录不同。更准确地说,它使用 /user 作为工作目录打开。这个出现在这里的时间不多了。几次之前我都没有这个问题。
-
@BrenoRodrigues 在下面看到我的更新。