我想要执行top并获取结果,以便知道进程使用了多少内存。从Cocoa应用执行终端命令top
首先,我想执行一个终端命令。我使用这个问题的代码 Execute a terminal command from a Cocoa app
我尝试了正常运行时间,它的工作完美无瑕。
但是,当我试图用的,而不是正常运行时间上面,我得到以下错误:
错误打开终端:未知。
或者,top位于/ usr/bin/top,我不知道它为什么拒绝使用它。
这里是我的代码:
NSTask *task;
task = [[NSTask alloc] init];
[task setLaunchPath: @"/usr/bin/top"];
/*NSArray *arguments;
arguments = [NSArray arrayWithObjects: @"foo", @"bar.txt", nil];
[task setArguments: arguments];*/
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
[task launch];
NSData *data;
data = [file readDataToEndOfFile];
NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
[label setStringValue: string];
[string release];
[task release];
第二个问题:我试图做的事是知道多少内存使用谷歌浏览器。 因为它为每个选项卡使用一个进程,所以很难知道它总共使用了多少memeroy。
问题1:每秒都会更改其值,我怎样才能得到一个值? 问题2:如何在顶部结果中搜索以仅查找我想要的过程(因为我知道他们的名字)。
谢谢。
NSTask不提供shell。 –
是的,你是对的我从我的回答中删除了这个thx – AliSoftware
谢谢,我不知道顶部需要一个窗口来执行,现在它是有道理的。我将使用ps或ps的变体。 现在的骚扰任务就是通过给定的理清我需要的信息... –