-1

有没有办法从流程中获取标准错误/输出路径?我尝试了 NSTask standardError,但它返回 NSFileHandle,我需要将路径作为字符串。谢谢!

ps StandardErrorPath 设置在 .plist 中,launchd 使用它在系统启动时启动进程。该过程是一个包,用目标 c 编写。

4

1 回答 1

1

不,你不能。严格来说,您可以在操作系统中使用大量黑客技术,但您不应该这样做。您不应该确定标准流的路径并打开路径并在其上写入/读取。

标准输入/输出/错误与文件无关。它们本质上与文件句柄相关联,而文件句柄不一定与文件系统上的路径相关联。它们是对路径概念的有意抽象,因此程序可以始终写入标准输入/输出/错误,而无需关心实际路径。这样,路径的选择是在程序用户的一方完成的,而不是程序本身。

launchd它看到StandardErrorPath的时候在概念上是这样的:

  1. 作为初始化过程的一部分,它打开 中的路径StandardErrorPath,获取文件描述符。
  2. 启动应用程序,将该文件描述符设置为应用程序的“标准错误文件描述符”。

应用程序,当它想要写入标准错误时,应该只写入标准错误而不是尝试确定标准错误的文件路径并写入它。

于 2010-05-20T18:49:18.207 回答