Eu não conheço nenhuma maneira portátil de fazer isso. Eu pensei que talvez ptrace()
, mas não consigo ver como na manpage. Mesmo que isso funcione, "rastrear" o outro processo de qualquer maneira provavelmente é desnecessariamente invasivo
Para o Linux, sua sugestão de usar fopen("/proc/PID/status", "r")
é a mais limpa e direta que você pretende obter. Parece ser o que o gdb faz.