2012-04-18 2 views
1

나는 잘 작동하는 응용 프로그램을 가지고 있지만 샌드 박스가 발표되었을 때 나는 필자가 필자가 생각하기 시작했을 것이라고 생각했습니다. 내 응용 프로그램에서 사용자가 파이썬을 호출하고 내가 무슨 일을했던 것은 표준 출력과 표준 에러freopen을 제한하는 샌드 박스 Mac OS X

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

를 간단한 리디렉션 한 후 거기에서

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 
} 

을하지만 그 중 하나가 도움이되지 않았다 : 나는 자격에 임시 파일 예외에 퍼팅 시도? 이 코드는 제대로 작동하고 있었고 sandboxing을 이해하고 있지만 파이썬 인터페이스를 간단하게 유지하고 빠른 리디렉션을 허용 할 수 있습니다. 어쨌든 모두는 stdout/stderr에 쓰고 읽을 수있다 ....

어떤 도움든지 크게 평가 될 것이다.

답변

0

대답은 경로가 잘못 되었기 때문에 샌드 박스에서 리디렉션이 잘되었지만 NSDocumentsDirectory 내의 파일로 처리해야합니다 ... iOS를 생각하기 시작하면 좋아요, 아니요. 마술, 그냥 귀하의 애플 리케이션의 문서 디렉토리에 완료되어야하고 표준 출력/stderr에 대한 리디렉션은 리콜 쓰기가 필요합니다 ...