「トップ」コマンドをプログラムで呼び出そうとしています。使用したコードは次のとおりです。
char buffer [128];
char* threadsPointer;
char* procPointer;
NSString* numberOfThreadsString;
NSString* numberOfProcString;
FILE* output = popen("/usr/bin/top", "r");
while (fgets(buffer, sizeof(buffer), output) != NULL)
{
if ((procPointer = strstr(buffer, "Processes:")) != NULL)
{
procPointer += strlen("Proceses: ");
strcpy(buffer, procPointer);
numberOfProcString = [NSString stringWithUTF8String: buffer];
}
if ((threadsPointer = strstr(buffer, "sleeping,")) != NULL)
{
threadsPointer += strlen("sleeping, ");
strcpy(buffer, threadsPointer);
numberOfThreadsString = [NSString stringWithUTF8String: buffer];
}
}
NSLog(@"Proc: %@\nThreads: %@\n\n\n", numberOfProcString, numberOfThreadsString);
有効な出力を提供する代わりに、「ターミナルを開く際のエラー: 不明」というエラーが表示され続けます。私は問題を特定するためにコード全体を賞賛し、その行FILE* output = popen ("/usr/bin/top", "r");
がエラーの原因であることに気付きました。
私が間違っていることを知っている人はいますか?iOSではなくOSX用のアプリを構築しているMountain Lion OS Xに注意してください。