설명

pause() 함수를 호출하면 시그널을 수신할 때까지 대기 상태로 빠집니다. 어떤 시그널이 발생하기 전까지 대기상태를 유지할 때 사용하면 요긴합니다.

헤더 unistd.h
형태 int pause(void);
반환 항상 -1을 반환하며 errno에는 ERESTARTNOHAND 로 설정됩니다.

예제

#include <stdio.h>
#include <signal.h>

void sigint_handler( int signo)
{
   printf( "Ctrl-C 키를 눌루셨죠!!\n");
}

int main( void)
{
   printf( "시그널을 받을 때까지 잠수합니다.\n");

   // CTRL-C로 바로 종료되는 것을 막기 위해
   // SIGINT를 사용자 핸들러로 지정했습니다.

   signal( SIGINT, sigint_handler);
   pause();
   printf( "깨어났지만 바로 종료합니다. 안녕~~\n");
}
]$ ./a.out
시그널을 받을 때까지 잠수합니다.              <--- Ctrl-C 키를 누릅니다.
Ctrl-C 키를 눌루셨죠!!
깨어났지만 바로 종료합니다. 안녕~~ --;
]$