c - 在 C 中,如何从 MacOSX 应用程序包写入文件

标签 c macos file-io core-foundation

<分区>

我想通过将文本转储到文件来调试应用程序中的某些内容,如下所示:

FILE *file; 
file = fopen("/tmp/file.txt","a+");
fprintf(file,"%s\n", "silly debug message"); 
fclose(file);

当我将文件作为 ./myapplication 运行时,这会起作用。但是当我将它捆绑为应用程序包(使用 gtk-osx-applicationgtk-mac-bundler )并运行应用程序包时,不会创建该文件。它默默地失败并继续执行。

有什么想法吗?是否正在进行一些沙盒操作?

最佳答案

是的,您的应用程序包是沙箱化的,因此您不能写入文件系统中的任意位置(如 /tmp)。要访问特定于您的应用程序的临时目录,请改用 NSTemporaryDirectory ;

import <NSPathUtilities.h>

NSString* tempPath = NSTemporaryDirectory();

查看有关文件系统访问的更多信息 here .

关于c - 在 C 中,如何从 MacOSX 应用程序包写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14786994/

相关文章:

c - 从文本文件中仅读取 C 中的数字

swift - 将 self 转换为 UnsafeMutablePointer<Void> 导致 EXC_BAD_INSTRUCTION

objective-c - NSSpeechSynthesizer 和轨道持续时间

linux - 这个模拟 linux 的 readlink 的 os x bash 脚本是如何工作的?

C++ 二进制文件读取

c - 制作一个包含结构的数组 - C

c - C 中的范围和条件#define

C 控制台游戏-Eclipse CDT 调试和发布是不同的

file - 文件系统写入缓冲区通常在几秒后被刷新?

python - 值错误 : I/O operation on closed file