gpt4 book ai didi

macos - NSTask 崩溃

转载 作者:行者123 更新时间:2023-12-03 16:06:23 26 4
gpt4 key购买 nike

我收到了一份来自 NSTask 的 -launch 崩溃现场的报告。

有问题的代码是:

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/bin/zsh"];
if(ignore)
{
[task setArguments:@[scriptPath, recordingFolder, Argument]];
}
else
{
[task setArguments:@[scriptPath, recordingFolder]];
}

NSPipe *outPipe = [NSPipe pipe];
[task setStandardOutput:outPipe];

NSPipe *errorPipe = [NSPipe pipe];
[task setStandardError:errorPipe];

[task launch];

scriptPath 是包含在应用程序包中的脚本。崩溃说:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to set posix_spawn_file_actions for fd -1 at index 0 with errno 9'

这可能是什么原因造成的? posix_spawn_file_actions 引用什么文件描述符?这是否意味着可执行脚本错误或者 outPipe 或 errPipe 格式不正确?

我相信它指的是 posix_spawn 函数: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/posix_spawn.2.html

而 errno 9 是 EBADF(错误文件号)。

最佳答案

我也遇到过类似的错误,使用下面的命令后就OK了,你可以试试。

NSFileHandle *file=[outPipe fileHandleForReading];
[task launch];
....//read file.
//this is the most important.
[file closeFile];

关于macos - NSTask 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370280/

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