私はこれをやろうとしていたときに時間を費やしました。しかし、結果はありません。私が取得することができた最高の結果が有効とバックグラウンド(プロセスを実行しているの実際のリスト)の両方のアプリケーションを実行しているのリストを取得している
:
-(void) listOfProcesses {
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0};
size_t miblen = 4;
size_t size;
sysctl(mib, miblen, NULL, &size, NULL, 0);
int st;
struct kinfo_proc * process = NULL;
struct kinfo_proc * newprocess = NULL;
do {
size += size/10;
newprocess = realloc(process, size);
if (!newprocess){
if (process){
free(process);
}
}
process = newprocess;
st = sysctl(mib, miblen, process, &size, NULL, 0);
} while (st == -1 && errno == ENOMEM);
if (st == 0){
if (size % sizeof(struct kinfo_proc) == 0){
int nprocess = size/sizeof(struct kinfo_proc);
if (nprocess){
for (int i = nprocess - 1; i >= 0; i--){
NSLog(@"Pid: %d, Process name: %@",process[i].kp_proc.p_pid,process[i].kp_proc.p_comm);
}
free(process);
}
}
}
}
このリストには、いくつかのシステムがありますプロセスが、並べ替えるのに問題はありません。
これは、UNIXシステムコールのリストです:
がmo情報については、このマニュアルを参照してください。これは参考になるかもしれません。
希望します。
これは公式のSDKでは不可能です。 jailbrokenデバイスやApp Stroe用に開発していますか? – sch