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];
4

2 に答える 2

0

実行しようとしているユーティリティ(w)は、サンドボックスの外部にあるファイルにアクセスしようとしています。つまり、サンドボックス化されたアプリケーションから起動した場合は機能しません。

于 2012-11-01T22:54:04.360 に答える
0

FreeBSDコマンドのソースを使用してアプリwにその機能を実装し、それが機能するかどうかを確認できます (機能するかどうかはわかりません)。しかし、少なくとも外部プログラムの実行に問題はありません...

ただし、非標準領域へのアクセスが必要な場合は、サンドボックス アプリでは機能しません。

于 2012-11-02T05:33:10.593 に答える