正如标题所说,ProcessProtocol 类上的这两个函数有什么区别?关于何时应该使用一个而不是另一个的文档有点稀疏?
最好是,我正在寻找一些用例的例子来证明这一点。
这一点上有些稀疏。 如果不存在此类票证,请随时提交工单以改进 API 文档。
当一个进程在正式的流程管理意义上退出时,即调用exit()
或从main()
返回时,将调用processExited
。
但是,这并不总是您想要的。 有时,一个进程会生成一个子进程,交出它的 stdin 和 stdout,委派生成您(在本例中为生成父进程)所需的数据的责任,然后exit()
,因为它已完成设置。
当进程退出并完成对其托管文件描述符(stdin
、stdout
和 childFDs
)执行所有 I/O 并且它们已关闭时,将调用 processEnded
。 如果您生成某些内容只是为了读取其输出,那么这是您最关心的通知。