advanced programming.. 보던중에...
안녕하세요.
advanced programming in the unix environment 책을
보던중에.. 궁금한 사항이 있어서 질문드립니다.
책 보면 프로그램 10.15 에서
소스코드 ------------------------
#include <signal.h>
#include "ourhdr.h"
static void sig_int(int);
int main(void)
{
sigset_t newmask, oldmask, zeromask;
if ( d_signal(SIGINT, sig_int) == SIG_ERR)
err_sys("signal(SIGINT) error");
sigemptyset(&zeromask);
sigemptyset(&newmask);
sigaddset(&newmask, SIGINT);
if ( sigprocmask(SIG_BLOCK, &newmask, &oldmask) < 0)
err_sys("SIG_BLOCK error");
pr_mask("in critical region: ");
if ( sigsuspend(&zeromask) != -1)
pr_mask("after return from sigsuspend: ");
if ( sigprocmask(SIG_SETMASK, &oldmask, NULL) < 0)
err_sys("SIG_SETMASK error");
exit(0);
}
void sig_int(int signo)
{
pr_mask("\nin sig_int: ");
return;
}
------------------------
책에 나온 결과값은
$a.out
int critical region: SIGINT
^?
int sig_int: SIGINT
after return fro sigsuspend: SIGINT
이거거든요.
근데 그대로 작성하고 실행보니깐..
after return fro sigsuspend: SIGINT
이 부분이 출력이 안되더라고요.
왜 그런지 궁금합니다. ^^;;
[code:1]#include <signal.h>#incl
* 가끔씩 책보고 똑같이 입력하려고 해도 잘~ 안된다.
* 그래도 잘 ~ 안된다.
* 왜 이게 없지?
err_sys("sigsuspend error");
[quote="Anonymous"]* 왜 이게 없지?[color=re
ourhdr.h
안에 있던걸로 기억합니다.
----
I think, therefore I am.
[quote="noohgnas"][quote="Anonymous"]* 왜
예 맞습니다만, 위 질문자님이 책의 소스를 치다가 그 줄을 빼먹었다는....
그러네요.~
질문 올리기전에 다시한번 확인했어야하는데..(망신살..ㅠㅠ~)
답변 주신분 감사드립니다. ^^
댓글 달기