C/C++에서 main이 아닌 함수에서 프로그램을 강제 종료시키는 방법 없나요?
조회수 22611회
예를 들어,
void Queue::push(int _data) {
if (isFull()) {
cout << "Queue is Full. You can't push the data. Exiting program..";
//여기서 강제종료!
}
else {
~~
}
위처럼, 메인함수나 다른함수에서, push함수를 호출 했을 때, isFull()이라면 그 다음은 실행하지 않고 강제로 프로그램을 종료시키는 방법 없을까요? assert는 알고있는데 다른 방법을 알고싶습니다
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
C/C++ 에서 프로그램을 종료시키는 함수는
exit()
입니다.일반적으로 에러 없이 정상적으로 종료하는 경우, 프로세스는 0을 반환하고, 그렇지 않은 경우에는 에러코드를 반환하는 방식을 많이 사용합니다. 이를 처리하기 위해서는
exit(0)
와 같이exit(에러코드숫자)
와 같이 사용하면 됩니다.exit
함수를 사용하지 않고, 프로세스의 반환값을 전달하는 방법은main
함수를 다음과 같이 정의하고 숫자를 반환하면 됩니다.int main(int argc,char** argv) { // ... 코드 return 0; // 코드 0을 프로세스의 종료 값으로 반환. // 혹은 return EXIT_SUCCESS; 와 같이 사용할 수 있음. }
exit
를 사용한다면, 다음과 같이 할 수 있으며,exit()
함수는 어떤 위치에서 불러도 프로세스를 종료시킵니다.int main(int argc,char** argv) { // ... 코드 exit(0); // 혹은 exit(EXIT_SUCCESS); 와 같이 사용할 수 있음. }
댓글 입력