在Xcode中使用C语言创建文件遇问题:Mac文件位置咨询
在Xcode中用C语言写入文件的默认位置说明
作为刚从Windows转用Mac+Xcode学C语言的新手,这个问题真的太普遍了!我来给你把逻辑理清楚:
首先,在C语言里用fopen()这类函数写文件(比如FILE *fp = fopen("test.txt", "w");),如果没指定绝对路径,默认的文件创建位置是Xcode项目的「当前工作目录」——但这个目录和你在Finder里看到的项目文件夹不是一回事!Xcode默认会把编译后的程序放到一个隐藏的构建缓存目录里,程序运行时的工作目录就是这里,所以你在常规项目文件夹里找不到文件。
快速找到文件的两种方法
方法1:在代码里打印当前工作目录
直接给代码加一段打印路径的逻辑,运行后就能在Xcode控制台看到具体位置:#include <stdio.h> #include <unistd.h> int main() { char current_path[1024]; if (getcwd(current_path, sizeof(current_path)) != NULL) { printf("当前工作目录:%s\n", current_path); } else { perror("获取路径失败"); return 1; } // 你的文件写入代码 FILE *fp = fopen("test.txt", "w"); if (fp != NULL) { fprintf(fp, "终于找到你啦!\n"); fclose(fp); } return 0; }运行后控制台会输出类似
/Users/你的用户名/Library/Developer/Xcode/DerivedData/项目名-随机字符/Build/Products/Debug的路径,你的test.txt就藏在这里。方法2:把工作目录改成可见的项目文件夹
如果想让文件直接创建在Finder里能看到的项目文件夹里,可以修改Xcode的设置:- 点击Xcode顶部运行按钮旁的项目名称,选择「Edit Scheme...」
- 在弹出窗口里选「Run」->「Options」标签
- 找到「Working Directory」,勾选「Use custom working directory」,再点击文件夹图标选择你的项目根目录
之后运行程序创建的文件,就会直接出现在你熟悉的项目文件夹里,找起来超方便!
额外补充
Windows下默认是在.exe文件所在的目录,而Mac的Xcode因为有构建缓存机制,默认工作目录在隐藏的DerivedData里,这就是你找不到文件的核心原因。当然,如果你直接写绝对路径(比如fopen("/Users/你的用户名/Desktop/test.txt", "w");),文件就会乖乖出现在你指定的位置,和系统无关。
内容的提问来源于stack exchange,提问作者Dušo Morháč
相关产品推荐
相关产品推荐

