Tendo problemas para executar um programa C compilado

0

Estou executando um Ubuntu v10.04 através do VirtualBox. Para testar a persistência dos arquivos criados na máquina virtual, escrevi um programa em C muito básico. Quando eu desligo a máquina virtual e a reinicio, vejo que os arquivos foram mantidos.

O que acontece:

  • Eu posso verificar o diretório com ls /root/ e ver program_name.c e program_name

  • compilados
  • Eu uso este comando para compilar: gcc program_name.c -o program_name

  • Eu posso executar ./a.out e o programa será executado corretamente.

  • Abrir o código C com nano program_name.c mostra o programa, como eu esperava.

O problema é ...

  • Quando eu tento o programa via ./program_name , nada acontece!

  • Se eu verificar o status de saída ( echo $? ), será zero.

Então, o que dá ...?

Eu sou um iniciante, claramente, e estou tendo dificuldades em entender por que não posso executar o programa C compilado, mesmo que eu possa encontrá-lo. É mais bizarro para mim, considerando que posso localizar todos os arquivos E ./a.out executa corretamente.

EDITAR:

Editado para uma apresentação mais clara.

Editar em relação à resposta ...

Na chance de que alguém chegue a esta procurando por ajuda, deve-se notar que, enquanto o comando file program_name expor que o arquivo estava em branco, a causa não foi determinada. Eu executei com êxito o executável antes de reiniciar a máquina virtual.

Talvez eu não tenha desligado a máquina virtual corretamente? De qualquer forma, verificar o arquivo foi / é certamente útil!

    
por d0rmLife 17.02.2013 / 00:49

1 resposta

3

Como você está usando a opção -o para renomear o programa compilado, o a.out que você tem lá agora pertence a outra coisa (versão anterior ou algo completamente não relacionado).

Seu programa provavelmente está em execução, mas não está retornando nenhuma saída. Verifique o tamanho do arquivo e execute file program_name para se convencer de que é um executável e, em seguida, veja o que o código deve fazer - use um argumento, talvez.

    
por 17.02.2013 / 02:05