Я хочу знать, как получить следующую информацию о системе Linux из C++ без использования fork/exec, popen() и system():
Любые намеки будут оценены.
Большое вам спасибо за ваше время!
Я считаю, что информация для 1) содержится в /proc/PID/cmdline
Если вы хотите использовать текущий процесс, вы можете использовать /proc/self / - пригодится, когда вы не знаете pid. Я мало что знаю о C++, но в C вы можете использовать открытые и прочитанные системные вызовы, чтобы избежать этого, что позволяет избежать наложения.
Я думаю, что многие другие ответы, которые вы, вероятно, можете сделать, манипулируя и обрабатывайте записи. я beleive/proc/PID/status сообщает вам о сигналах, которые были заблокированы и игнорируются указанным PID.
Редактирование: немного подумать о 4) вы можете рекурсивно прокручивать записи pid в /proc для поиска вашего имени процесса - это единственный способ, которым я могу думать без forking (вызов "ps" изнутри кода, поскольку другие предлагаемые требования fork/exec). Есть ли какая-то конкретная причина, по которой вы избегаете вилки?
ps -ef | grep "program-name" | awk '{print $ 2}'