我试图在 MAC 中创建新进程时检测/收到通知。最简单的方法是轮询所有进程并查看是否已启动新进程,但这太耗时了,我想知道每当使用“forked”和“execve”启动新进程时是否可以以某种方式收到一些通知。这是我已经发现的:
关于如何在 MAC 中启动新进程:
OS X 是 Unix 的变种。新进程是通过 fork() 系统调用创建的。这会创建一个几乎相同的进行调用的进程的副本(区别在于 fork 在子进程中返回 0,而在父进程中返回子进程的 pid)。然后,通常可以在子进程中使用 exec() 系统调用之一将子进程转换为运行不同可执行文件的进程。如何在 Mac 上启动新应用程序? https://stackoverflow.com/questions/7568605/how-is-new-application-launched-on-mac
通过轮询获取所有进程列表
http://www.cocoabuilder.com/archive/cocoa/92971-bsd-processes-with-code.html http://www.cocoabuilder.com/archive/cocoa/92971-bsd-processes-with-code.html
我也经历过 kAuth kext 的事情,但它似乎超出了我的水平,除非我有一些简单的示例代码,以便我可以理解如何生成 kext 并在示例应用程序中使用它。https://developer.apple.com/library/mac/technotes/tn2127/_index.html https://developer.apple.com/library/mac/technotes/tn2127/_index.html
NSWorkspace 有一个通知程序,但这仅适用于应用程序,而不适用于所有进程。
任何对如何解决此问题有一些基本了解的教程/示例代码将不胜感激。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)