gpt4 book ai didi

swift - 进程(NSTask)fileHandleForReading readabilityHandler 闭包未在 Linux 上调用

转载 作者:行者123 更新时间:2023-12-04 19:11:01 32 4
gpt4 key购买 nike

在 macOS 中编译以下代码时,它会运行并提供输出。

import Foundation

let runloop = RunLoop.current

let process = Process()
process.launchPath = "/bin/echo"
process.arguments = ["hello world"]

let output = Pipe()
process.standardOutput = output

output.fileHandleForReading.readabilityHandler = { fileHandle in
let data = fileHandle.availableData
print("received data: \(data.count)")
print(String(data: data, encoding: .utf8) ?? "")
}

print("starting")
process.launch()

while runloop.run(mode: .default, before: Date(timeIntervalSinceNow: 2)) { }

输出:
received data: 12
hello world\n

但是当我在 Ubuntu Swift docker 镜像(Swift 版本 5.0.1)中编译并运行它时, readabilityHandler闭包根本不会被调用。

最佳答案

这似乎已在 swift:latest 中修复。 Docker 镜像(撰写本文时为 5.1.4)。看起来像 readabilityHandler在 Linux 和 merged 中实现在 Swift 5.1 的准备阶段。

关于swift - 进程(NSTask)fileHandleForReading readabilityHandler 闭包未在 Linux 上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55991688/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com