2012-11-01 77 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命令来实现它的功能您的应用程序,看其是否正常工作(不知道是否会或不会)。但至少你不会遇到运行外部程序的问题......

但是,如果它需要访问非标准区域,那么它将无法在沙盒应用程序中工作。