C-无法在OSX的当前目录上创建文件

我必须将数据保存在项目文件中(用C语言)。 因此,我想使用fopen来使用fprintf在文件上输出字符串值。

所以,我这样做了:

FILE * file;
file = fopen("./tmp.txt","w+");
outputData(); //my fonction to fprintf in the file
fclose(file);

但是当我这样做时,这不在当前目录中,而是在我的目录中 我的计算机的用户目录(在OSX上),而不是应用程序午餐所在的当前目录。

那么,如何更改输出文件的当前目录?没有hardCoding吗?

我正在从“ / Users / Guillaume / OneDrive / Ephec / Os / Project1”中执行程序

,文件tmp.txt在以下位置创建: “ /用户/纪尧姆” 我想在与项目相同的目录中创建文件

sunshengxia 回答:C-无法在OSX的当前目录上创建文件

您可以尝试在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()结合

  

手册页:http://manpagesfr.free.fr/man/man3/realpath.3.html

并将其存储在预定义的字符串路径中

本文链接:https://www.f2er.com/3145745.html

大家都在问