有没有办法从流程中获取标准错误/输出路径?
我尝试了NSTask的standardError
,但它返回了NSFileHandle,我需要将路径作为字符串。
谢谢!
P.S。 StandardErrorPath在launchd用于启动系统启动过程的.plist中设置。这个过程是一个捆绑,用目标c写成。
答案 0 :(得分:1)
不,你不能。严格来说,你可以使用操作系统的许多hackery,但你不应该。您不应该确定标准流的路径并打开路径并在其上写/读。
标准输入/输出/错误与文件无关。它们本质上与文件句柄相关联,文件句柄不一定与文件系统上的路径相关联。它们是对路径概念的有意抽象,因此程序总是可以写入标准输入/输出/错误,而无需关心实际路径。这样,路径的选择是在程序用户一侧完成的,而不是程序本身。
launchd
在看到StandardErrorPath
时所做的事情在概念上是这样的:
StandardErrorPath
中的路径,获取文件描述符。当应用程序想要写入标准错误时,应该写入标准错误, not 尝试确定标准错误的文件路径并写入。