Порт Маха напрямую не связан с процессом, а вместо этого с задачей.Затем задача ассоциируется со структурой процесса bsd.Для запроса портов задачи вы можете использовать функцию mach_port_names.Чтобы получить все открытые порты Mach, итерируйте по всем задачам и используйте вышеупомянутую функцию.
Другой подход - использовать файловую систему procfs.Файловая система procfs реализована поверх файловой системы fuse и должна быть установлена в системе вручную.Это решение с открытым исходным кодом.После установки файловой системы procfs вы можете запрашивать порты задачи, открывая файл / proc / proc-id / task / ports.Посмотрите на http://osxbook.com/book/bonus/chapter11/procfs/.