有没有办法从流程中获取标准错误/输出路径?我尝试了 NSTask standardError
,但它返回 NSFileHandle,我需要将路径作为字符串。谢谢!
ps StandardErrorPath 设置在 .plist 中,launchd 使用它在系统启动时启动进程。该过程是一个包,用目标 c 编写。
不,你不能。严格来说,您可以在操作系统中使用大量黑客技术,但您不应该这样做。您不应该确定标准流的路径并打开路径并在其上写入/读取。
标准输入/输出/错误与文件无关。它们本质上与文件句柄相关联,而文件句柄不一定与文件系统上的路径相关联。它们是对路径概念的有意抽象,因此程序可以始终写入标准输入/输出/错误,而无需关心实际路径。这样,路径的选择是在程序用户的一方完成的,而不是程序本身。
当launchd
它看到StandardErrorPath
的时候在概念上是这样的:
StandardErrorPath
,获取文件描述符。应用程序,当它想要写入标准错误时,应该只写入标准错误, 而不是尝试确定标准错误的文件路径并写入它。