C/C++에서 main이 아닌 함수에서 프로그램을 강제 종료시키는 방법 없나요?


예를 들어,

void Queue::push(int _data) {
    if (isFull()) {
        cout << "Queue is Full. You can't push the data. Exiting program..";
        //여기서 강제종료!
    }
    else {
    ~~
    }

위처럼, 메인함수나 다른함수에서, push함수를 호출 했을 때, isFull()이라면 그 다음은 실행하지 않고 강제로 프로그램을 종료시키는 방법 없을까요? assert는 알고있는데 다른 방법을 알고싶습니다

  • 2016년 10월 17일에 작성됨
    컴퓨터공학과 재학중인 학생입니다.

조회수 127


1 답변


좋아요
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); 와 같이 사용할 수 있음.
}

참고: https://msdn.microsoft.com/ko-kr/library/k9dcesdd.aspx

  • 2016년 10월 17일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

  • 감사합니다!!    이혁준   2016.10.17 20:24     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close