컴파일된 C 프로그램을 실행하는 데 문제가 있습니다.

컴파일된 C 프로그램을 실행하는 데 문제가 있습니다.

VirtualBox를 통해 Ubuntu v10.04를 실행하고 있습니다. 가상 머신에서 생성한 파일의 지속성을 테스트하기 위해 매우 기본적인 C 프로그램을 작성했습니다. 가상 머신을 종료했다가 다시 시작하면 파일이 그대로 유지된 것을 볼 수 있습니다.

무슨 일이야:

  • 디렉토리를 검사 ls /root/하고 program_name.c컴파일된 디렉토리를 볼 수 있습니다.program_name

  • 이 명령을 사용하여 컴파일합니다.gcc program_name.c -o program_name

  • 실행할 수 ./a.out있고 프로그램이 올바르게 실행됩니다.

  • C 코드를 열면 nano program_name.c예상한 대로 프로그램이 표시됩니다.

문제는 ...

  • 프로그램을 진행하려고 해도 ./program_name아무 일도 일어나지 않습니다!

  • 종료 상태( )를 확인해보면 echo $?0 입니다.

    컴파일된 C 프로그램을 찾을 수 있음에도 불구하고 왜 실행할 수 없는지 이해하는 데 어려움을 겪고 있습니다. 모든 파일을 찾아 올바르게 실행할 수 있다는 점을 고려하면 ./a.out이것은 나에게 가장 이상한 일입니다 .

편집하다:

보다 명확한 프레젠테이션을 위해 편집되었습니다.

관련 답변 수정...

file program_name다른 사람이 도움을 구하러 오면 명령을 실행하면 파일이 비어 있다고 표시되지만 이유는 밝혀지지 않았다는 점에 유의해야 합니다 . 가상 머신을 다시 시작하기 전에 실행 파일을 성공적으로 실행했습니다.

어쩌면 가상 머신을 제대로 종료하지 않았을까요? 어쨌든, 파일을 확인하는 것이 도움이 됩니다!

답변1

-o 옵션을 사용하여 컴파일된 프로그램의 이름을 바꾸었으므로 이제 다른 것(이전 버전 또는 완전히 관련되지 않은 것)에 속하는 a.out을 갖게 됩니다.

프로그램이 실행 중이지만 출력이 반환되지 않을 수 있습니다. 파일 크기를 확인하고 file program_name실행 가능하다는 것을 스스로 확신한 다음 코드가 무엇을 해야 하는지 확인하십시오(아마도 매개변수 사용).

관련 정보