De fato, você precisa usar /proc/ ; então leia atentamente proc (5) .
Para o processo 1234, você deseja ler /proc/1234/maps (ou /proc/1234/smaps ) para obter o espaço de endereço e ler /proc/1234/status & /proc/1234/statm
Para seu próprio processo (programaticamente), use /proc/self/maps , /proc/self/status , /proc/self/statm
Observe que uso de memória é um termo muito ambíguo no Linux. Como você contaria um segmento de arquivo mmap -ed por dois processos? Consulte mmap (2) & getrusage (2)
Teste cat /proc/self/maps , cat /proc/$$/maps em um terminal. Leia as páginas wiki no espaço de endereço , memória virtual , cache de páginas , ASLR , ELF , RSS , conjunto de trabalhos ...