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
실행 가능하다는 것을 스스로 확신한 다음 코드가 무엇을 해야 하는지 확인하십시오(아마도 매개변수 사용).