首页
学习
活动
专区
圈层
工具
发布

注册
EN

Stack Overflow用户
提问于 2010-08-25 20:14:40
回答 1查看 250关注 0票数 0

我正在尝试弄清楚如何让这个NSFileHandleReadToEndOfFileCompletionNotification.工作,但是我被困在如何‘注册’piece of code from a previous question的问题上

这是我的代码:

代码语言:javascript
复制
NSTask *topTask = [NSTask new];
[topTask setLaunchPath:@"/usr/bin/top"];
[topTask setArguments:[NSArray arrayWithObjects:@"-s", @"1", @"-l", @"3600", @"-stats", @"pid,cpu,time,command", nil]];

NSPipe *outputPipe = [NSPipe pipe];
[topTask setStandardOutput:outputPipe];
[topTask launch];

..。它运行得很好,直到我添加了以下内容:

代码语言:javascript
复制
[[outputPipe fileHandleForReading] readToEndOfFileInBackgroundAndNotify];

..。这会导致程序冻结。当我添加这个的时候:

代码语言:javascript
复制
NSString *outputString = [[[NSString alloc] initWithData:[[notification userInfo] objectForKey:NSFileHandleNotificationDataItem] encoding:NSUTF8StringEncoding] autorelease];

..。代码不能编译,我得到了!警告

代码语言:javascript
复制
'notification' undeclared. 

在这件事上的任何帮助都会让我感激不尽。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-25 21:43:33

在命令行中使用这些参数运行top将导致它不断打印统计数据,并且永远不会写入EOF。这就是-readToEndOfFileInBackgroundAndNotify永远运行的原因。

听起来你可能只想阅读第一次迭代,然后终止任务。

至于错误,听起来像是在包含该行的方法中没有名为notification的变量。

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

https://stackoverflow.com/questions/3565673

复制
相关文章

相似问题

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