C - 无法在 OSX 中的当前目录中创建文件
C - Can't create a file on the current directory in OSX
我必须将数据保存在一个项目文件中(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 创建于:
“/Users/Guillaume”
我想在与我的项目相同的目录中创建文件
您可以尝试使用完整路径,如 linux:
FILE * file;
file = fopen("/home/toto/tmp.txt","w+");
您还可以使用 access
检查文件访问权限
我找到了解决方案。
char path[PATH_SIZE/2];
strcpy(path,realpath(argv[0],0));
我使用程序的 argv[0] 部分来获取路径
结合 realpath()
Man page : http://manpagesfr.free.fr/man/man3/realpath.3.html
并将其存储在预定义的字符串路径中
我必须将数据保存在一个项目文件中(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 创建于: “/Users/Guillaume” 我想在与我的项目相同的目录中创建文件
您可以尝试使用完整路径,如 linux:
FILE * file;
file = fopen("/home/toto/tmp.txt","w+");
您还可以使用 access
检查文件访问权限我找到了解决方案。
char path[PATH_SIZE/2];
strcpy(path,realpath(argv[0],0));
我使用程序的 argv[0] 部分来获取路径 结合 realpath()
Man page : http://manpagesfr.free.fr/man/man3/realpath.3.html
并将其存储在预定义的字符串路径中