디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

와 signal 어렵당 ㅠㅠ.... 도배했다고 정지먹었당..

ㄱㄷ(125.176) 2010.10.19 04:46:17
조회 95 추천 0 댓글 2


요고 메인 부분에서 굵게 친 부분은 주석처리 해봐도 출력값은 같게나오는데
현재 mask값을 NULL로 하고 그걸 oldmask에 set해주니까 그런거지??
이 부분은 왜 넣은지 모르겠당.. 쓸데없는거같은데 예를 보여줄라고 넣은건가..

근데  show_mask() 요 함수에서 있잖아

sigset_t set; 으로 새로 정의를 해주구있는데

main 문에서 newmask에 SIGQUIT 값이 add 되어있으면
인자를 가져다 주지않은 상태에서

위에서 말한것처럼 sigset_t set 으로 새로 정의를 해줬는데도
거기에 현재 mask값이 들어있나봐..?

SIGQUIT <- 요값이 출력이 되는거보니까...

아어렵다.ㅇ..

void show_mask()
{
    sigset_t set;
   
    if( sigprocmask( 0, NULL, &set ) < 0 )
        fprintf( stderr, "sigpromask error" );
   
    if( sigismember( &set, SIGINT ) )
        printf( "SIGINT" );
    if( sigismember( &set, SIGQUIT ) )
        printf( "SIGQUIT" );
    if( sigismember( &set, SIGALRM) )
        printf( "SIGALRM" );
    if( sigismember( &set, SIGUSR1) )
        printf( "SIGUSR1" );
       
    printf( "\\n" );
}           
==================================================================
int main()
{
    sigset_t newmask, oldmask;
   
    sigemptyset( &newmask );
    sigaddset( &newmask, SIGQUIT );
   
    if( sigprocmask( SIG_BLOCK, &newmask, &oldmask ) <0 )
        fprintf( stderr, "sigprocmask error" );
    show_mask();
 
 //요부분
    if( sigprocmask( SIG_SETMASK, &oldmask, NULL ) <0 )                            
        fprintf( stderr, "sigprocmask error" );
    show_mask();
   
    return 0;
}       


=================================================
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <signal.h>
#include <stdlib.h>

void show_mask()
{
    sigset_t set;
    
    if( sigprocmask( 0, NULL, &set ) < 0 )
        fprintf( stderr, "sigpromask error" );
    
    if( sigismember( &set, SIGINT ) )
        printf( "SIGINT" );
    if( sigismember( &set, SIGQUIT ) )
        printf( "SIGQUIT" );
    if( sigismember( &set, SIGALRM) )
        printf( "SIGALRM" );
    if( sigismember( &set, SIGUSR1) )
        printf( "SIGUSR1" );
        
    printf( "\\n" );
}                            

int main()
{
    sigset_t newmask, oldmask;
    
    sigemptyset( &newmask );
    sigaddset( &newmask, SIGQUIT );
    
    if( sigprocmask( SIG_BLOCK, &newmask, &oldmask ) <0 )
        fprintf( stderr, "sigprocmask error" );
    show_mask();

    if( sigprocmask( SIG_SETMASK, &oldmask, NULL ) <0 )
        fprintf( stderr, "sigprocmask error" );
    show_mask();
    
    return 0;
}        
        
    
       

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 연예인 안됐으면 어쩔 뻔, 누가 봐도 천상 연예인은? 운영자 24/06/17 - -
226848 위키릭스 파일 열렸넹 -_- [5] (175.120) 10.12.24 125 0
226847 궁금한게 있는데 [7] elwlwlwk갤로그로 이동합니다. 10.12.24 70 0
226846 여기 오세훈 까는 새끼들 있냐? [7] 갓뎀(116.45) 10.12.24 148 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2