⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sigusr.c

📁 一个C源代码分析器
💻 C
字号:
/*@group*/#include <signal.h>#include <stdio.h>#include <sys/types.h>#include <unistd.h>/*@end group*//* When a @code{SIGUSR1} signal arrives, set this variable.  */volatile sig_atomic_t usr_interrupt = 0;void synch_signal (int sig){  usr_interrupt = 1;}/* The child process executes this function. */void child_function (void){  /* Perform initialization. */  printf ("I'm here!!!  My pid is %d.\n", (int) getpid ());  /* Let parent know you're done. */  kill (getppid (), SIGUSR1);  /* Continue with execution. */  puts ("Bye, now....");  exit (0);}intmain (void){  struct sigaction usr_action;  sigset_t block_mask;  pid_t child_id;  /* Establish the signal handler. */  sigfillset (&block_mask);  usr_action.sa_handler = synch_signal;  usr_action.sa_mask = block_mask;  usr_action.sa_flags = 0;  sigaction (SIGUSR1, &usr_action, NULL);  /* Create the child process. */  child_id = fork ();  if (child_id == 0)    child_function ();		/* Does not return.  *//*@group*/  /* Busy wait for the child to send a signal. */  while (!usr_interrupt)    ;/*@end group*/  /* Now continue execution. */  puts ("That's all, folks!");  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -