switch case error. Can anyone help?
Code:
void sig_handler(int signo){
switch(signo){
case SIGALRM:
flag = getpid();
switch(flag){
case parent_PID:
p_realt_secs++;
break;
case child1_PID:
c1_realt_secs++;
break;
case child2_PID:
c2_realt_secs++;
break;
default:
break;
}
break;
case SIGVTALRM:
flag = getpid();
switch(flag){
case parent_PID:
p_virtt_secs++;
break;
case child1_PID:
c1_virtt_secs++;
break;
case child2_PID:
c2_virtt_secs++;
break;
default:
break;
}
break;
case SIGPROF:
flag = getpid();
switch(flag){
case parent_PID:
p_proft_secs++;
break;
case child1_PID:
c1_proft_secs++;
break;
case child2_PID:
c2_proft_secs++;
break;
default:
break;
}
break;
default:
break;
}
}
output:
Code:
kernel_system.c: In function ‘sig_handler’:
kernel_system.c:26: error: case label does not reduce to an integer constant
kernel_system.c:29: error: case label does not reduce to an integer constant
kernel_system.c:32: error: case label does not reduce to an integer constant
kernel_system.c:42: error: case label does not reduce to an integer constant
kernel_system.c:45: error: case label does not reduce to an integer constant
kernel_system.c:48: error: case label does not reduce to an integer constant
kernel_system.c:58: error: case label does not reduce to an integer constant
kernel_system.c:61: error: case label does not reduce to an integer constant
kernel_system.c:64: error: case label does not reduce to an integer constant