首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个NSTask terminationStatus返回一个零值?

为什么这个NSTask terminationStatus返回一个零值?
EN

Stack Overflow用户
提问于 2009-12-29 11:13:30
回答 2查看 1.4K关注 0票数 0

我知道任务返回一个值给标准错误,我可以通过输入"echo $?“来看到这个值。在终端中手动运行任务。

下面的代码是:

代码语言:javascript
运行
复制
[aTask launch];
[aTask waitUntilExit];
int status = [aTask terminationStatus];

看起来不错,但是gdb说状态是0x0的一个位置,不能被访问。有人知道Xcode中的NSTask对象中有什么bug吗?我做错了什么吗?

谢谢你的答复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-29 18:08:13

实际上,任务执行得很好,并通过返回状态0表示成功。当您在终端中回显结果时,是0吗?

对你的问题的评论:

这是我的gdb,在执行了上面的代码之后:(gdb) po状态不能访问地址0x0 - demonslayer319的内存。

int不是一个对象;因此,po status不能工作。po的工作方式是将-description发送到对象,但它的方式与普通的objc_msgSend()调用略有不同。因此,当gdb试图将值0作为对象的地址处理时,gdb检测到它不可能有效,因为0作为一个地址无法取消引用。

试一试p status

(是的,任务可能是0-您一开始就没有正确地创建任务--因此,零吃消息导致状态为0)。

票数 5
EN

Stack Overflow用户

发布于 2009-12-29 14:16:55

您确定正在创建的任务实际上已经创建了吗?除了diciu的响应外,如果aTask为零,-[NSTask terminationStatus]将返回零。这是因为返回对象的消息返回零,返回原语的消息返回0、0.0f、NO等。

通常您会用NSTask创建一个+[NSTask launchedTaskWithLaunchPath:arguments:]实例,而在这里创建失败通常是由于一个不正确指定的路径或零参数,这会生成一个异常。由于您没有提到任何异常,也没有发布用于创建任务的代码,因此很难说这是否是问题所在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1974112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档