Я должен узнать, какие библиотеки процесс Unix загрузил и мог бы использовать повсюду, это - время жизни. Это возможное и как. Или еще лучше, я сделал, чтобы библиотека назвала, и я должен узнать, какие процессы используют ее, это возможное.
На той же ноте, это возможный быть уведомленным некоторые как, когда процесс Unix запускается и когда это завершено. Они не были бы дочерними процессами моего процесса, я просто должен знать глобально.
Обновление:
Я думаю, что не дал достаточно информации. Unix, о котором я говорил, был MacOS X (даже при том, что некоторые говорят не действительно полностью Unix), и я искал способ найти загруженные библиотеки, которые имеет процесс, и я должен сделать это в C/C++.
Если LSOF не установлен, вы можете просто Cat / Proc / $ PID / MAPS
Вы также можете проверить на файл дисков с LDD, чтобы увидеть, какие они откроются (но это не показывает библиотеки, открытые динамически используемым dlopen ()).
Что касается мониторинга новых процессов, вы можете добавить inotify Watch On / ProC для мониторинга создания / уничтожения новых числовых только каталогов.
Обновление: Inotify On / Proc не работает, но есть видимо, видно, см. Эта тема
можно использовать lsof. Дополнительную информацию смотрите в man-странице. Другой инструмент - strace
. Чтобы проверить, запущен ли процесс, можно использовать ps -ef
, подключенный к grep
, или такие инструменты, как pgrep
. Проверьте, не выходит ли возвращаемое значение из строки или нет.
Solaris имеет pldd
. Для Linux вы можете вызвать ldd
для исполняемого файла или pmap
для запущенного процесса или заглянуть в / proc / PID / maps
для отображенных библиотек.