【问题标题】:Sandbox restricting freopen Mac OS X沙盒限制 freopen Mac OS X
【发布时间】:2012-04-30 01:04:02
【问题描述】:

所以我有一个运行良好的应用程序,但当沙盒发布时,我想我不妨开始遵守。在我的应用程序中,用户可以调用 python,而我一直在做的是 stdout 和 stderr 的简单重定向

freopen("error.log","w",stderr);

然后通过a调用Python

status = PyRun_SimpleString(utfString);

从那里我可以简单地回读结果/错误并继续生活。但是对于沙箱,这是不允许的,因为 /dev/stdout 和 /dev/stderr 在我的应用程序之外。我尝试在权利中加入临时文件例外:

com.apple.security.temporary-exception.files.absolute-path.read-write => Array
{
    Item 0 => /dev/stdout
    Item 1 => /dev/stderr
}

但这也无济于事......

有谁知道如何解决这个问题?这段代码运行良好,我理解沙盒,但我想保持 python 界面简单,快速重定向似乎对我来说是可以接受的;毕竟,每个人都可以对 stdout/stderr 进行读写......

任何帮助将不胜感激。

【问题讨论】:

    标签: macos redirect operating-system sandbox


    【解决方案1】:

    答案是路径不正确,在沙箱中,重定向很好,但您需要将其转到 NSDocumentsDirectory 中的文件... ,回想一下需要在应用程序的文档目录中完成写入,并且 stdout/stderr 的重定向是写入...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2018-04-15
      • 1970-01-01
      • 2013-05-08
      • 2016-03-31
      • 2018-08-13
      相关资源
      最近更新 更多