【发布时间】:2019-12-22 19:31:51
【问题描述】:
假设编译后的 C 二进制文件位于 ~/bin/my_cool_c_program.out,我有以下代码:
FILE *file = fopen("helloworld.txt");
perror("Open helloworld.txt");
现在我面临一个问题,代码在我执行二进制文件的目录中创建helloworld.txt 文件,而不是相对于二进制文件所在的位置。所以从~ 调用它会创建~/helloworld.txt,但我希望它保存到~/bin/helloworld.txt。我尝试用"./helloworld" 替换它,但这也不起作用。当我从~/bin/ 目录本身调用时,一切都按预期工作。
为什么在创建文件后第一个结果是perror 打印Permission denied,而第二个结果是Successful?
注意:我会检查 file == NULL 等等。为了简单起见,我只是将其删除。
【问题讨论】:
-
你可能会找到一些帮助here
-
没想到,这个没有标准????
-
在 fopen 调用中缺少表示打开模式的第二个参数。
标签: c file permissions