概述
现在需要分析,按下Ctrl+c,整个shell的处理流程。
信号
首先看下trap结构体:
1272 typedef struct trap {
1273 const char *name; /* short name */
1274 const char *mess; /* descriptive name */
1275 char *trap; /* trap command */
1276 sig_t cursig; /* current handler (valid if TF_ORIG_* set) */
1277 sig_t shtrap; /* shell signal handler */
1278 int signal; /* signal number */
1279 int flags; /* TF_* */
1280 volatile sig_atomic_t set; /* trap pending */
1281 } Trap;
信号处理函数shtrap的赋值。