Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sig1:
- #include <signal.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- char napisy[3][80]={"Ha! Ha! Ha! To tylko sygnał powierzchniowy!\n",
- "Tylko proces %d śmieje sie sygnałowi %d prosto w twarz!\n",
- "Auć - to bolało!\n"};
- int nr_napisu = 0;
- void obsluga_sig_int(int sig)
- {
- printf(napisy[nr_napisu], getpid(), sig);
- nr_napisu = ((nr_napisu + 1) % 3);
- }
- int main(){
- int t = 0;
- //signal(SIGQUIT, obsluga_sig_int);
- sigset_t tset;
- sigset_t dset;
- sigemptyset(&tset);
- sigaddset(&tset, SIGINT);
- sigaddset(&tset, SIGQUIT);
- struct sigaction sac;
- sac.sa_handler = obsluga_sig_int;
- sac.sa_mask = tset;
- sac.sa_flags = 0;
- sigaction(SIGINT, &sac, NULL);
- sigprocmask(SIG_BLOCK, &tset, NULL);
- while (1){
- printf("Cześć tu proces: %d\n", getpid());
- t++;
- if(t == 5)
- {
- sigpending(&dset);
- printf("Odblokowano sygnały. Zablokowane sygnały: \n");
- if(sigismember(&dset, SIGINT)) printf("SIGINT\n");
- if(sigismember(&dset, SIGQUIT)) printf("SIGQUIT\n");
- if(!sigismember(&dset, SIGINT) && !sigismember(&dset, SIGQUIT)) printf("Nie zablokowano żadnych sygnałów\n");
- sigprocmask(SIG_UNBLOCK, &tset, NULL);
- }
- sleep(1);
- }
- return 0;
- }
- sig2:
- #include <signal.h>
- #include <stdio.h>
- #include <unistd.h>
- #include <stdlib.h>
- char napisy[3][80]={"Ha! Ha! Ha! To tylko sygnał powierzchniowy!\n",
- "Tylko proces %d śmieje sie sygnałowi %d prosto w twarz!\n",
- "Auć - to bolało!\n"};
- int nr_napisu = 0;
- void obsluga_sig_int(int sig)
- {
- printf(napisy[nr_napisu], getpid(), sig);
- nr_napisu = ((nr_napisu + 1) % 3);
- sleep(5);
- }
- int main(){
- //signal(SIGQUIT, obsluga_sig_int);
- sigset_t tset;
- sigemptyset(&tset);
- sigaddset(&tset, SIGINT);
- sigaddset(&tset, SIGQUIT);
- struct sigaction sac = {obsluga_sig_int, tset, 0};
- sigaction(SIGINT, &sac, NULL);
- while (1){
- printf("Cześć tu proces: %d\n", getpid());
- sleep(1);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement