Paszta

Sygnały

Jun 4th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.95 KB | None | 0 0
  1. WSTĘP
  2.  
  3. #include <signal.h>
  4. #include <unistd.h>
  5.  
  6.  
  7. void obslugaINT(int SIG){
  8.     printf("....");
  9. }
  10.  
  11. int main (){
  12.    
  13.     sigset_t zbior, zbior2; //tworzenie nowego zbioru sygnalow ignorowanych
  14.     sigemptyset(&zbior);  //czyszczenie zbioru
  15.     sigaddset(SIGINT, &zbior); //dodawanie sygnalow
  16.     sigprocmask(SIG_BLOCK, &zbior, NULL); // blokowanie sygnalow podanych
  17.    
  18.     sigpending(&zbior2);  //sygnaly zablokowane ale czekajace na wykonanie
  19.    
  20.  
  21.    
  22.     signal(SIGINT, obslugaINT);  // SIGALRM
  23.     signal(SIGQUIT, obslugaINT);
  24.    
  25.     alarm(5);
  26.    
  27. }
  28.  
  29. 2.
  30.  
  31. #include <signal.h>
  32. #include <stdio.h>
  33. #include <unistd.h>
  34. #include <stdlib.h>
  35.  
  36. char napisy[4][80] ={"Ha! To sygnal powierzchowny!\n", "Tylko proces %d smieje sie sygnalowi %d w twarz\n", "Auc - to bolalo\n", "Dobrze\n"};
  37.  
  38. int nr_napisu=0;
  39.  
  40. void obslugaINT(int SIG){
  41.     printf(napisy[nr_napisu], getpid(), SIG);
  42.     nr_napisu=((nr_napisu +1) % 4);
  43.         if(nr_napisu == 0){
  44.         exit(1);
  45.         }
  46. }
  47.  
  48. int main (int argc, char** argv){
  49.    
  50.     signal(SIGINT, obslugaINT);  
  51.     while (1){
  52.      
  53.         printf("czesc tu proces %d\n", getpid());
  54.         sleep(1);
  55.     }
  56.  
  57.  
  58.     return 0;
  59. }
  60.  
  61. 3.
  62.  
  63. #include <signal.h>
  64. #include <stdio.h>
  65. #include <unistd.h>
  66. #include <stdlib.h>
  67.  
  68. char napisy[4][80] ={"Ha! To sygnal powierzchowny!\n", "Tylko proces %d smieje sie sygnalowi %d w twarz\n", "Auc - to bolalo\n", "Dobrze\n"};
  69.  
  70. int nr_napisu=0;
  71.  
  72. void obslugaINT(int SIG){
  73.     printf(napisy[nr_napisu], getpid(), SIG);
  74.     nr_napisu=((nr_napisu +1) % 4);
  75.         if(nr_napisu == 0){
  76.         exit(1);
  77.         }
  78. }
  79.  
  80. void signalquit(int SIG){
  81.     printf("Przywrocenie sygnalu");
  82.     signal(SIGINT, SIG_DFL);
  83. }
  84.  
  85.  
  86. int main (int argc, char** argv){
  87.    
  88.     signal(SIGINT, obslugaINT);
  89.     signal(SIGQUIT, signalquit);
  90.  
  91.     while (1){
  92.      
  93.         printf("czesc tu proces %d\n", getpid());
  94.         sleep(1);
  95.     }
  96.    
  97.  
  98.     return 0;
  99. }
  100.  
  101. 4.
  102.  
  103. #include <signal.h>
  104. #include <stdio.h>
  105. #include <unistd.h>
  106. #include <stdlib.h>
  107.  
  108. char napisy[4][80] ={"Ha! To sygnal powierzchowny!\n", "Tylko proces %d smieje sie sygnalowi %d w twarz\n", "Auc - to bolalo\n", "Dobrze\n"};
  109.  
  110. int nr_napisu=0;
  111.  
  112. void obslugaINT(int SIG){
  113.     printf(napisy[nr_napisu], getpid(), SIG);
  114.     nr_napisu=((nr_napisu +1) % 4);
  115.         if(nr_napisu == 0){
  116.         exit(1);
  117.         }
  118. }
  119.  
  120. void signalquit(int SIG){
  121.     printf("Przywrocenie sygnalu\n");
  122.     signal(SIGINT, SIG_DFL);
  123. }
  124.  
  125.  
  126.  
  127. int main (int argc, char** argv){
  128.    
  129.     signal(SIGINT, obslugaINT);
  130.    
  131.     signal(SIGQUIT, signalquit);
  132.    
  133.     signal(SIGALRM, signalquit);
  134.     alarm(3);
  135.  
  136.     while (1){
  137.      
  138.         printf("czesc tu proces %d\n", getpid());
  139.         sleep(1);
  140.     }
  141.    
  142.  
  143.     return 0;
  144. }
  145.  
  146. HASŁO : SystemyOperacyjne2019;-)
  147.  
  148. 5.
  149.  
  150. #include <signal.h>
  151. #include <stdio.h>
  152. #include <unistd.h>
  153. #include <stdlib.h>
  154.  
  155. char napisy[4][80] ={"Ha! To sygnal powierzchowny!\n", "Tylko proces %d smieje sie sygnalowi %d w twarz\n", "Auc - to bolalo\n", "Dobrze\n"};
  156.  
  157. int nr_napisu=0;
  158.  
  159. void obslugaINT(int SIG){
  160.     printf(napisy[nr_napisu], getpid(), SIG);
  161.     nr_napisu=((nr_napisu +1) % 4);
  162.         if(nr_napisu == 0){
  163.         exit(1);
  164.         }
  165. }
  166.  
  167. void signalquit(int SIG){
  168.     printf("Przywrocenie sygnalu\n");
  169.     signal(SIGINT, SIG_DFL);
  170. }
  171.  
  172.  
  173.  
  174. int main (int argc, char** argv){
  175.      int licz = 0;
  176.  
  177.     signal(SIGINT, obslugaINT);
  178.    
  179.     signal(SIGQUIT, signalquit);
  180.    
  181.     printf("zablokowane");
  182.    
  183.     signal(SIGALRM, signalquit);
  184.     alarm(5);
  185.  
  186.     sigset_t zbiorblok, zbior2;
  187.     sigemptyset(&zbiorblok);
  188.     sigemptyset(&zbior2);
  189.     sigaddset(SIGINT, &zbiorblok);
  190.     sigaddset(SIGQUIT, &zbiorblok);
  191.     sigprocmask(SIG_BLOCK, &zbiorblok, NULL);
  192.     while (1){
  193.      
  194.         printf("czesc tu proces %d\n", getpid());
  195.         sleep(1);
  196.         licz ++;
  197.        
  198.         if(licznik == 5){
  199.        
  200.            
  201.         }
  202.     }
  203.    
  204.  
  205.     return 0;
  206. }
Add Comment
Please, Sign In to add comment