Advertisement
Guest User

Untitled

a guest
May 20th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1. /*lsp signal()함수 예제1 302p~303p*/
  2. /*ssu_signal_1.c*/
  3. /*20162468 박다은*/
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <unistd.h>
  8. #include <signal.h>
  9. #include <sys/time.h> //gettimeofday
  10.  
  11. void ssu_signal_handler(int signo);
  12. void (*ssu_func)(int);
  13.  
  14. int main()
  15. {
  16.     struct timeval A, B, C; //시간을 비교할 값들
  17.     gettimeofday(&A, NULL);
  18.     //=======================================
  19.  
  20.     ssu_func = signal(SIGINT, ssu_signal_handler);
  21.  
  22.     while(1)
  23.     {
  24.         printf("process running...\n");
  25.         sleep(1);
  26.     }
  27.  
  28.     //=======================================
  29.     gettimeofday(&B, NULL);
  30.  
  31.     C.tv_sec = B.tv_sec - A.tv_sec;
  32.     C.tv_usec = B.tv_usec - A.tv_usec;
  33.     if(C.tv_usec < 0){
  34.         C.tv_sec -= 1;
  35.         C.tv_usec += 1000000;
  36.     }
  37.     printf("ROLLCAKE::Running Time : %ld µs\n", C.tv_sec*1000000 + C.tv_usec); //작은 프로그램이므로 마이크로초로 계산
  38.     exit(0);
  39. }
  40.  
  41. void ssu_signal_handler(int signo){
  42.     printf("SIGINT 시그널 발생\n");
  43.     printf("SIGINT를 SIG_DFL로 재설정 함\n");
  44.     signal(SIGINT, ssu_func); //default
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement