Advertisement
techno-

listjobs

Dec 14th, 2022
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. void cmdListJobs(){
  2.     int i;
  3.     int status; //No borrar más de aquí
  4.     int pid;
  5.    
  6.     for(i=0;i<nprocesos;i++){
  7.         printf("--- El pid de histprocesoelemento es %d\n",HistProcesosElemento(i)->PID);
  8.         pid=waitpid(HistProcesosElemento(i)->PID,&status,WNOHANG| WUNTRACED| WCONTINUED);
  9.         printf("----waitpid es %d y senal es %d\n",pid,HistProcesosElemento(i)->senal);
  10.        
  11.         if(strcmp("FINISHED",HistProcesosElemento(i)->status)!=0 && pid != -1){
  12.            
  13.         if(WIFEXITED(status)){
  14.             strcpy(HistProcesosElemento(i)->status,"FINISHED");
  15.             HistProcesos[i]->prioridad=-1;
  16.             printf("Terminado con WIFEXITED(status)=%d\n",WIFEXITED(status));
  17.         }else if(WIFSIGNALED(status) && (pid!=0 || HistProcesosElemento(i)->senal !=0)){
  18.             printf("Entra\n");
  19.             if(WTERMSIG(status)<=31){
  20.                 strcpy(HistProcesosElemento(i)->status,"SIGNALED");
  21.                 HistProcesos[i]->prioridad=-1;
  22.                 HistProcesosElemento(i)->senal=WTERMSIG(status);
  23.                 printf("----senal es %d\n",HistProcesosElemento(i)->senal);
  24.                 printf("Terminado con WIFSIGNALED(status)=%d\n",WIFSIGNALED(status));
  25.             }
  26.         }else if(WIFSTOPPED(status)){
  27.             strcpy(HistProcesosElemento(i)->status,"STOPPED");
  28.             HistProcesosElemento(i)->senal=WSTOPSIG(status);
  29.             printf("----senal es %d\n",HistProcesosElemento(i)->senal);
  30.             printf("Terminado con WIFSTOPPED(status)=%d\n",WIFSTOPPED(status));
  31.         }else if(HistProcesosElemento(i)->senal==0 && pid==0){
  32.             strcpy(HistProcesosElemento(i)->status,"ACTIVE");
  33.         }
  34.     }
  35.        
  36.        
  37.         printf("Status es %d\n",status);
  38.         if(HistProcesosElemento(i)->senal!=0){
  39.             printf("%d \t %s p=%d  %s  %d  %d:%02d  %s  (%s)  %s\n",HistProcesosElemento(i)->PID,HistProcesosElemento(i)->usuario, HistProcesos[i]->prioridad,nombreMes(HistProcesosElemento(i)->month), HistProcesosElemento(i)->dia, HistProcesosElemento(i)->hora, HistProcesosElemento(i)->min, HistProcesosElemento(i)->status, NombreSenal(HistProcesosElemento(i)->senal),HistProcesosElemento(i)->nombre);
  40.         }else printf("%d \t %s p=%d  %s  %d  %d:%02d  %s  (%03d)  %s\n",HistProcesosElemento(i)->PID,HistProcesosElemento(i)->usuario, HistProcesos[i]->prioridad,nombreMes(HistProcesosElemento(i)->month), HistProcesosElemento(i)->dia, HistProcesosElemento(i)->hora, HistProcesosElemento(i)->min, HistProcesosElemento(i)->status, HistProcesosElemento(i)->senal,HistProcesosElemento(i)->nombre);
  41.         }
  42.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement