O sistema de arquivos /proc
não é inerentemente portátil entre os sistemas operacionais. Existem Unices onde não existe de todo.
O sistema de arquivos /proc
no AIX está documentado aqui: link
Sobre o arquivo a.out
no subdiretório object
, ele diz:
[...] The name
a.out
also appears in the directory as a synonym for the executable file associated with the text of the running process.The
object
directory makes it possible for a controlling process to get access to the object file and any shared libraries (and consequently the symbol tables), without the process first obtaining the specific path names of those files.
Isso significa que acessar o arquivo a.out
nessa estrutura é mais ou menos o oposto do que você deseja fazer. Permite que um programa de usuário acesse o executável de um processo sem conhecer seu caminho completo.
Há também estruturas em /proc
no AIX que contém o nome base do executável, mas, novamente, não é isso que você está interessado.
Como um processo pode definir seu próprio argumento de linha de comando zeroth (o nome do processo que aparece em ps
), usar ps
também não seria uma solução infalível para encontrar o caminho absoluto para o executável em execução, mesmo que tenha sido executado com um caminho completo.
O que você poderia fazer é caçar o executável por seu inode.
Um exemplo de como fazer isso é descrito na resposta aceita atualmente à pergunta " Como identificar o caminho do executável com seu PID no AIX 5 ou mais ".
Também pode ser bom se perguntar por que você precisa dessas informações ao consultar um processo em execução , já que normalmente é claro estudar um script ou programa exatamente quais utilitários externos está invocando.