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

📄 sigusr.c.texi

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

⌨️ 快捷键说明

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