#include <lcsignal.h> int pause(void);The synopsis for the POSIX implementation is
#include <sys/types.h> #include <unistd.h> int pause(void);
You may use either set of header files in your program.
pause
suspends program execution until a signal is discovered.
If a signal occurs that is blocked, program execution does not resume.
If an unblocked signal occurs, pause
calls the signal handler,
if any, and then immediately returns to its caller.
The pause
function may be implemented by OpenEdition or internally
by SAS/C. If oesigsetup
has been called, explicitly or implicitly,
then pause
is implemented by OpenEdition; otherwise, it is implemented
by SAS/C.
No CPU time is consumed (other than set-up time) while pause
is
executing.
pause
returns - 1, which indicates that it
was interrupted by a signal.
sigsuspend
, allows precise control of signal
blocking while pausing, so it is usually preferable to pause
.
pause
is compatible with Berkeley UNIX, except the return value
is different.
#include <sys/types.h> #include <unistd.h> #include <signal.h> #include <setjmp.h> #include <lcjmp.h> #include <stdio.h> void breakout(int); jmp_buf jbuf; int jcode; main() { /* Establish SIGINT handling. */ onjmp(jbuf, jcode, done); signal(SIGINT, &breakout); puts("We are now pausing for a message from our sponsor."); puts("Enter Control C or attn to continue."); pause(); done: puts("And now back to our program."); return; } /* SIGINT handler gets out of wait. */ void breakout(int signum) { puts("Try SAS/C today, the choice of the new generation!"); longjmp(jbuf, 1); }
ecbpause
, ecbsuspend
, sigpause
,
sigsuspend
, sleep
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.