SIGNAL
This commit is contained in:
parent
70b475b290
commit
962ee7180e
23
System2/catch_signal/main.c
Normal file
23
System2/catch_signal/main.c
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
void sig_usr(int signo)
|
||||||
|
{
|
||||||
|
if (signo == SIGUSR1)
|
||||||
|
printf("received SIGUSR1\n");
|
||||||
|
else if (signo == SIGUSR2)
|
||||||
|
printf("received SIGUSR2\n");
|
||||||
|
else
|
||||||
|
printf("received signal %d\n", signo);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
if (signal(SIGUSR1, sig_usr) == SIG_ERR)
|
||||||
|
printf("can't catch SIGUSR1\n");
|
||||||
|
if (signal(SIGUSR2, sig_usr) == SIG_ERR)
|
||||||
|
printf("can't catch SIGUSR2\n");
|
||||||
|
for (;;)
|
||||||
|
pause();
|
||||||
|
}
|
@ -5,8 +5,7 @@
|
|||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
pid_t fpid;
|
pid_t fpid; // fpid表示fork函数返回的值
|
||||||
|
|
||||||
fpid = fork();
|
fpid = fork();
|
||||||
// create child process
|
// create child process
|
||||||
if (fpid == -1)
|
if (fpid == -1)
|
||||||
|
21
System2/example_alarm/main.c
Normal file
21
System2/example_alarm/main.c
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
void sig_handler(int signo)
|
||||||
|
{
|
||||||
|
printf("in handler\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
signal(SIGALRM, sig_handler);
|
||||||
|
alarm(5);
|
||||||
|
for (size_t i = 0; i < 30; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
printf("i = %d, In main\n", i);
|
||||||
|
sleep(1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
23
System2/sendToFile/main.c
Normal file
23
System2/sendToFile/main.c
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
void handler(int signum)
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
fp = fopen("test.txt", "w");
|
||||||
|
fprintf(fp, "coucou, je suis bien en vie!\n");
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
signal(SIGUSR1, handler);
|
||||||
|
for (size_t i = 0; i < 30; i++)
|
||||||
|
{
|
||||||
|
|
||||||
|
printf("i = %d, In main\n", i);
|
||||||
|
sleep(1);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
0
System2/sendToFile/test.txt
Normal file
0
System2/sendToFile/test.txt
Normal file
@ -10,7 +10,6 @@ int main()
|
|||||||
SCell *cell;
|
SCell *cell;
|
||||||
|
|
||||||
list = CreateList();
|
list = CreateList();
|
||||||
|
|
||||||
printf("Add 5, 3, 1\n");
|
printf("Add 5, 3, 1\n");
|
||||||
AddElementBegin(list, 5);
|
AddElementBegin(list, 5);
|
||||||
cell = AddElementBegin(list, 3);
|
cell = AddElementBegin(list, 3);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user