Aplicação compilada tem comportamente diferente se executada pela interface gráfica ou pelo terminal

1. Aplicação compilada tem comportamente diferente se executada pela interface gráfica ou pelo terminal

Vítor Aydos da SIlva
ObjDesorientated

(usa elementary OS)

Enviado em 03/09/2017 - 11:09h

Oi, compilei uma aplicação que lê arquivos de uma pasta especificada em um caminho relativo, se eu a executo pelo terminal com o "./" ela funciona normalamente, mas se tento executá-la pela interface gráfica (duplo-clique) ela não encontra esses arquivos. Modifiquei o código para gerar um arquivo de log na mesma pasta do executável e, novamente, ao executar pelo terminal ela funciona como esperado e o arquivo de log é gerado na pasta do executável, mas ao rodar pela interface gráfica vi que o arquivo de log foi gerado na home ("home/meuUsuario"). Se eu copio a pasta com os arquivos lidos pela aplicação para a home ela os encontra quando executada pela interface gráfica.

Esse não é um comportamento que eu esperaria, por que ao executar uma aplicação pela interface gráfica o local do executável é desconsiderado e ele roda como se fosse a partir da home? Estou utiilizando o Elementary OS há bem pouco tempo, no passado já utilizei Ubuntu e não lembro de ter tido problema semelhante.

Espero que alguém possa me esclarecer esse comportamento e se é possível modificá-lo, desde já agradeço.


  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/09/2017 - 12:39h

Quando você executa um programa num sistema UNIX, ele sempre começa a executar no mesmo diretório em que estava o processo que o chamou. Como o ambiente gráfico geralmente executa a partir do seu homedir, os programas que ele invocar estarão inicialmente no homedir.

Se você quiser que o programa execute dentro de um local específico, deve ou fazer com que o próprio programa entre nesse diretório (função chdir()), ou deve trocar d diretório antes de executá-lo.





Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts