无法使用libproc在沙盒OSX应用程序的应用程序商店

问题描述 投票:0回答:2

我有一个使用libproc得到的打开的应用程序列表的C ++应用程序。工作不按预期沙盒的时候。但是部署到应用程序商店,它必须被沙盒以及这样做的时候,proc_listallpids(从libproc)不再有效。无论如何围绕这吗?

#include <libproc.h>
#include <stdio.h>
#include <string.h>

void find_pids()
{
    pid_t pids[2048];
    int bytes = proc_listallpids(pids, sizeof(pids));
    int n_proc = bytes / sizeof(pids[0]);
    for (int i = 0; i < n_proc; i++) {
        struct proc_bsdinfo proc;
        int st = proc_pidinfo(pids[i], PROC_PIDTBSDINFO, 0,
                              &proc, PROC_PIDTBSDINFO_SIZE);
        printf("%s\n", proc.pbi_name);
    }
}


int main()
{
    find_pids();
    return 0;
}
c++ macos appstore-sandbox
2个回答
2
投票

NSWorkspace.runningApplications是更多的Mac特定的方式,以获取有关运行的应用程序(而不仅仅是处理)的信息,可能会在沙盒应用工作。但在一般情况下,沙盒应用程序不应该能够看到对方。


1
投票

没有,是没有办法解决这个。

沙箱的目的是隔离从机器上运行的其他进程应用程序。它是通过阻止浏览这些流程应用程序正确地做其工作。

© www.soinside.com 2019 - 2024. All rights reserved.