我想要執行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的變體。 現在的騷擾任務就是通過給定的理清我需要的信息... –