Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*lsp signal()함수 예제1 302p~303p*/
- /*ssu_signal_1.c*/
- /*20162468 박다은*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <signal.h>
- #include <sys/time.h> //gettimeofday
- void ssu_signal_handler(int signo);
- void (*ssu_func)(int);
- int main()
- {
- struct timeval A, B, C; //시간을 비교할 값들
- gettimeofday(&A, NULL);
- //=======================================
- ssu_func = signal(SIGINT, ssu_signal_handler);
- while(1)
- {
- printf("process running...\n");
- sleep(1);
- }
- //=======================================
- gettimeofday(&B, NULL);
- C.tv_sec = B.tv_sec - A.tv_sec;
- C.tv_usec = B.tv_usec - A.tv_usec;
- if(C.tv_usec < 0){
- C.tv_sec -= 1;
- C.tv_usec += 1000000;
- }
- printf("ROLLCAKE::Running Time : %ld µs\n", C.tv_sec*1000000 + C.tv_usec); //작은 프로그램이므로 마이크로초로 계산
- exit(0);
- }
- void ssu_signal_handler(int signo){
- printf("SIGINT 시그널 발생\n");
- printf("SIGINT를 SIG_DFL로 재설정 함\n");
- signal(SIGINT, ssu_func); //default
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement