Проверьте, не работает ли исполняемый двоичный файл 32 или 64 бит

Можно проверить, работает ли бинарный процесс пакета приложений в 32 или 64-битном режиме, поскольку ответил в этом вопросе, но я могу проверить, что это только работает с процессами GUI.

Однако мне также нужно проверить процессы, которые не имеют графического интерфейса и не являются частью пакета.

Итак, программно, без вызова системных функций или других исполняемых файлов, как я могу проверить, работает ли какой-либо процесс в 32 или 64-битном режиме, учитывая процесс pid?

Ответ 1

Итак, я наконец нашел ответ уже на SO here, для Carbon. Чтобы использовать этот код сейчас, требуется включить:

#include <sys/sysctl.h>

Кроме того, кажется, что член структуры процесса изменился с

proc->kp_proc.p_flags 

:

proc->kp_proc.p_flag