2012-11-01 114 views
1

如何使應用程序顯示在終端中使用w命令登錄到計算機的所有用戶?在沙盒應用程序中運行外部程序

我做了測試版的應用程序,但它禁用了沙箱功能[它顯示用戶],但它不支持啓用沙箱功能[它說沒有用戶登錄]。代碼是:

NSTask *task = [NSTask new]; 
[task setLaunchPath:@"/usr/bin/w"]; 

NSPipe *output = [NSPipe pipe]; 
[task setStandardInput:[NSPipe pipe]]; 
[task setStandardOutput: output]; 

[task launch]; 
NSFileHandle * read = [output fileHandleForReading]; 
NSData * dataRead = [read readDataToEndOfFile]; 
NSString *result = [[NSString alloc] initWithData:dataRead encoding:NSUTF8StringEncoding]; 
[TView setString: result]; 

回答

0

您嘗試運行的實用程序(w)正在嘗試訪問沙箱外部的文件。簡而言之,從沙盒應用程序啓動時不起作用。

+0

是否有任何其他方法來查看可以與沙箱一起使用的登錄用戶? – user1792771

0

你可以嘗試使用source從FreeBSD的w命令來實現它的功能您的應用程序,看其是否正常工作(不知道是否會或不會)。但至少你不會遇到運行外部程序的問題......

但是,如果它需要訪問非標準區域,那麼它將無法在沙盒應用程序中工作。