Home C++ 프로그램 종료하기
Post
Cancel

C++ 프로그램 종료하기

C++을 사용하면서 코딩을 하다보면 프로그램을 종료해야 할 때가 있을 것이다 보통은 프로그램이 순차적으로 실행되면서 마지막으로

1
return 0; 

만나게 되면 끝이 나지만 이렇게만 프로그램을 종료해야 한다면 다양한 상황에서 요구 조건에 따라 종료해야 할 때 불편함과 문제가 생길 것이다 그래서 C++은 다양한 종료 방법을 제공하고 있는데 이번 글에선 이러한 다양한 방법으로 C++ 프로그램을 종료하는 법에 대해 알아보려 한다

return 문 사용하기

1
2
3
4
int main() {
    // 코드
    return 0;  // 성공적인 종료
}

앞에서 말했듯 C++에서 가장 기본적인 종료 방법은 main 함수에서 return 문을 사용하는 것이다 return의 값은 프로그램의 종료 상태를 나타내며 일반적으로 0은 성공을 의미한다

exit 함수 사용하기

1
2
3
4
5
6
#include <cstdlib>

int main() {
    // 코드
    exit(0);  // 성공적인 종료
}

다음은 cstdlib 헤더에 정의된 exit 함수를 사용하는 것으로 exit 사용하면 main 함수가 아니더라도 언제든지 프로그램을 종료할 수 있다

std::abort 함수 사용하기

1
2
3
4
5
6
#include <cstdlib>

int main() {
    // 코드
    std::abort();  // 비정상 종료
}

세 번째는 std::abort 함수로 std::abort는 프로그램을 즉시 종료시키며 종료 상태 코드를 반환하지 않는다 이 방법은 주로 비정상적인 상황에서 사용된다

std::terminate 함수 사용하기

1
2
3
4
5
6
#include <exception>

int main() {
    // 코드
    std::terminate();  // 비정상 종료
}

이번에는 std::terminate 함수를 사용하는 방법으로 예외 처리 중에 프로그램을 종료하는 방법이다 하지만 기본적으로 std::abort를 호출한다

std::quick_exit 함수 사용하기 (C++11 이상)

1
2
3
4
5
6
#include <cstdlib>

int main() {
    // 코드
    std::quick_exit(0);  // 빠른 종료
}

다음은 C++11에서 도입된 방법으로 std::quick_exit는 exit와 유사하지만 일부 종료 처리를 생략하기에 빠른 종료가 필요한 상황에 유용하게 사용된다

예외 던지기

1
2
3
4
int main() {
    // 코드
    throw std::runtime_error("오류 발생");  // 예외로 인한 종료
}

마지막은 예외를 던져 프로그램을 종료하는 것이다

결론

마치며 시간이 중요한 사람을 위해서 각 방법을 표로 정리하고 끝내겠다

종료 방법특징사용 시점 및 상황
returnmain 함수에서 반환 값으로 프로그램 종료정상적 종료, 반환 값으로 종료 상태 전달
exit표준 라이브러리 함수, 종료 상태 코드 반환어디서든 호출 가능, 정리 루틴 수행 후 종료
std::abort비정상적 종료, 종료 상태 코드 반환 안 함오류나 예외 상황에서 즉시 종료
std::terminate예외 처리 중 호출, 기본적으로 std::abort 호출예외 처리 불가능 시 호출, 비정상적 종료
std::quick_exitC++11 이상, 일부 종료 처리 생략빠른 종료가 필요할 때, 특정 리소스 정리 생략 가능
예외 던지기예외를 던져서 프로그램 종료예외 처리되지 않은 오류 발생 시
This post is licensed under CC BY 4.0 by the author.

12월 16일 Today I Learned

12월 17일 Today I Learned