É comum codificar essas referências em tempo de compilação e, talvez, fornecer uma opção de linha de comando ou variável de ambiente para substituir o padrão de tempo de compilação. Muitas vezes o programa apenas lembra a localização de um arquivo de configuração (normalmente sob /etc
) onde qualquer padrão de tempo de compilação pode ser substituído. Esta abordagem faz mais sentido para o software de código aberto que é compilado pelas mesmas pessoas que fazem o sistema operacional, como parte de uma distribuição Linux ou portas BSD.
Para aplicativos distribuídos em uma forma binária, a abordagem usual é localizar o binário do aplicativo a partir de seu argumento zero. Por convenção, o argumento zeroth para execve
(ou seja, argv[0]
) é o caminho para o binário (cabe ao chamador, geralmente um shell, respeitar a convenção). Se argv[0]
não contiver /
, o aplicativo deverá realizar $PATH
de pesquisa.