- 511 名前:デフォルトの名無しさん mailto:sage [2008/11/10(月) 02:54:37 ]
- 510です。
稚拙ながらもソースコードを示します。 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <signal.h> #include <unistd.h> #include <sys/time.h> #include <sys/types.h> #include <sys/wait.h> int realSec = 0; int profSec = 0; int virtualSec = 0; static void myHandler(int s) { int errSave; if (s == SIGALRM) realSec++; else if (s == SIGVTALRM) virtualSec++; else if (s == SIGPROF) profSec++; } static int setupInterrupt(void) { struct sigaction act; act.sa_handler = myHandler; act.sa_flags = 0; return (sigemptyset(&act.sa_mask) == sigaction(SIGALRM,&act, NULL) == sigaction(SIGVTALRM,&act, NULL) == sigaction(SIGPROF, &act, NULL) == 0) ? 1 : 0; } static int setupitimer(void) { struct itimerval value; value.it_interval.tv_sec = 1; value.it_interval.tv_usec = 0; value.it_value = value.it_interval; return (setitimer(ITIMER_PROF,&value, NULL) == setitimer(ITIMER_VIRTUAL,&value, NULL) == setitimer(ITIMER_REAL,&value, NULL) == 0)? 0: -1 ; }
|

|