'C'库中的tmp目录路径

时间:2013-05-30 06:33:03

标签: ios c macos app-store sandbox

我的cocoa应用程序使用一个用'C'编写的库,它是'/ tmp'路径下的try文件。这会导致沙箱违规。在Cocoa中,我们可以使用'NSTemporaryDirectory'API。修复沙箱违规在沙盒环境中使用“tmpfile”API是否安全?还有其他解决方案吗?

1 个答案:

答案 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;
}