diff --git a/zh-cn/application-dev/napi/c-cpp-overview.md b/zh-cn/application-dev/napi/c-cpp-overview.md index 520451bf777f2e6144f9f0e2f39921b7b473b0e2..d5e76c33756fcd5c513e76f93b3bfb7a61ebd2a5 100644 --- a/zh-cn/application-dev/napi/c-cpp-overview.md +++ b/zh-cn/application-dev/napi/c-cpp-overview.md @@ -68,4 +68,38 @@ symbol-version是libc在**动态链接-符号重定位**阶段的符号检索机 自API12起,newlocale及setlocale接口支持将locale设置C、C.UTF-8、en_US、en_US.UTF-8、zh_CN及zh_CN.UTF-8。新增在zh_CN及zh_CN.UTF-8的locale设置下对strtod_l、wcstod_l和localeconv的支持。注意strtod_l及wcstod_l不支持对十六进制及十六进制小数的转换。 ### fdsan功能 -[fdsan使用指导](./fdsan.md)可以帮助检测文件的重复关闭和关闭后使用问题。 \ No newline at end of file +[fdsan使用指导](./fdsan.md)可以帮助检测文件的重复关闭和关闭后使用问题。 + +## 3. 信号使用 +为避免与系统保留信号冲突,开发者在使用信号时需遵循以下规则: +- 信号编号 1~34:为系统内部保留信号,禁止使用; +- 信号编号 35~45: 截止到目前 API 19,这些信号已被系统内部模块(如内存、DFX、运行时、系统服务等)占用,为避免与系统行为冲突并导致不可预期的问题,请勿使用该范围内的信号。 +- SIGRTMIN和__libc_current_sigrtmin的值是35, 表示可供应用程序使用的实时信号起始编号(应用实际只能使用46及以上的信号)。 + +鸿蒙内部信号使用统计如下: + +| 编号 | 名称 | 备注 | 编号 | 名称 | 备注 | +|------|-----------|-----------------|------|--------------------------------------------|---------------------------| +| 1 | SIGHUP | 控制终端挂起 | 24 | SIGXCPU | 超出 CPU 时间限制 | +| 2 | SIGINT | 中断 | 25 | SIGXFSZ | 文件超出大小限制 | +| 3 | SIGQUIT | 键盘退出 | 26 | SIGVTALRM | 虚拟定时器 | +| 4 | SIGILL | 非法指令 | 27 | SIGPROF | profiling 计时器到期 | +| 5 | SIGTRAP | 调试断点 | 28 | SIGWINCH | 终端窗口大小变化 | +| 6 | SIGABRT | 中止信号 | 29 | SIGIO | I/O 可用通知 | +| 7 | SIGBUS | 总线错误 | 30 | SIGPWR | 电源故障 | +| 8 | SIGFPE | 算术异常 | 31 | SIGSYS | 非法系统调用 | +| 9 | SIGKILL | 强制终止 | 32 | SIGTIMER | 定时器定时信号 | +| 10 | SIGUSR1 | 用户自定义信号 1 | 33 | SIGCANCEL | 线程取消信号 | +| 11 | SIGSEGV | 无效内存访问 | 34 | SIGSYNCCALL | 同步调用信号 | +| 12 | SIGUSR2 | 用户自定义信号 2 | 35 | MUSL_SIGNAL_NATIVE_REMOTE (SIGRTMIN + 0) | 系统自留 | +| 13 | SIGPIPE | 管道损坏 | 36 | MUSL_SIGNAL_HOOK (SIGRTMIN + 1) | 系统自留 | +| 14 | SIGALRM | 定时器信号 | 37 | MUSL_SIGNAL_UNHOOK (SIGRTMIN + 2) | 系统自留 | +| 15 | SIGTERM | 程序终止请求 | 38 | MUSL_SIGNAL_NATIVE_LOCAL (SIGRTMIN + 3) | 系统自留 | +| 16 | SIGSTKFLT | 协处理器栈错误 | 39 | MUSL_SIGNAL_JSHEAP (SIGRTMIN + 4) | 系统自留 | +| 17 | SIGCHLD | 子进程退出/停止 | 40 | MUSL_SIGNAL_JSHEAP_PRIV (SIGRTMIN + 5) | 系统自留 | +| 18 | SIGCONT | 继续执行 | 41 | MUSL_SIGNAL_SAMPLE_STACK (SIGRTMIN + 6) | 系统自留 | +| 19 | SIGSTOP | 强制停止 | 42 | MUSL_SIGNAL_LEAK_STACK (SIGRTMIN + 7) | 系统自留 | +| 20 | SIGTSTP | 停止在终端输入 | 43 | MUSL_SIGNAL_RECYCLE_JEMALLOC (SIGRTMIN + 8) | 系统自留 | +| 21 | SIGTTIN | 后台读终端 | 44 | MUSL_SIGNAL_MEMCHECK (SIGRTMIN + 9) | 系统自留 | +| 22 | SIGTTOU | 后台写终端 | 45 | MUSL_SIGNAL_FDTRACK (SIGRTMIN + 10) | 系统自留 | +| 23 | SIGURG | 套接字有紧急数据 | - | - | - | \ No newline at end of file