我的cocoa应用程序使用一个用'C'编写的库,它是'/ tmp'路径下的try文件。这会导致沙箱违规。在Cocoa中,我们可以使用'NSTemporaryDirectory'API。修复沙箱违规在沙盒环境中使用“tmpfile”API是否安全?还有其他解决方案吗?
答案 0 :(得分:1)
编辑实际测试后
不,tmpnam()
不起作用,我认为获取临时文件名的唯一方法是提供一个.m
文件,专门用于iOS和OSX的库,可以使用将临时目录作为C-String返回:
apple.h:
#pragma once
extern size_t getTemporaryDirectory(char *buffer, size_t len);
apple.m:
size_t getTemporaryDirectory(char *buffer, size_t len)
{
@autoreleasepool
{
NSString *tempDir = NSTemporaryDirectory();
if (tempDir != nil)
{
const char *utf = [tempDir UTF8String];
strncpy(buffer, utf, len);
return strlen(utf);
}
}
return 0;
}