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

📄 test11.c

📁 这个是学习嵌入式开发的重要例子
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/wait.h>#include <string.h>#include <errno.h>#include <unistd.h>void process_signal(int sig);void child_process_main(void);int main(int argc, char **argv){  int status;  fprintf(stdout, "SIGCHLD = %d\n", SIGCHLD);  fprintf(stdout, "SIGTERM = %d\n", SIGTERM);  // void (*signal(int sig, void (*func)(int)))(int);  signal(SIGCHLD, process_signal);  //signal(SIGTERM, process_signal);  //signal(SIGINT, process_signal);  //signal(7, process_signal);  //signal(SIGCHLD, process_signal);  //sleep(1000);  pid_t pid;  if ((pid = fork()) < 0)  {    fprintf(stderr, "fork() failed: %s\n", strerror(errno));    return 1;  }  else if (pid == 0)  {    child_process_main();    exit(0);  }  else  {    // parent process, continue  }#if 0  pid_t returned_pid;  returned_pid = wait(&status);  fprintf(stdout, "returned_pid = %d, error: %s\n", returned_pid, strerror(errno));#endif  sleep(1000);  return 0;}void child_process_main(void){  sleep(1);  fprintf(stdout, "I'm child process, pid = %d\n", getpid());}void process_signal(int sig){  printf("Catched %d signal.\n", sig);  int status;  if (sig == SIGCHLD)  {    pid_t returned_pid;    returned_pid = wait(&status);    fprintf(stdout, "%d process is exited.\n", returned_pid);  }}

⌨️ 快捷键说明

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