Docker概念和部署
2025/12/22 10:24:17
信号通信是一种异步通信机制,常用于处理随机事件和通知。发送和接收信号的过程如下:
handle2)。发送信号函数
int kill(pid_t pid, int sig);pid:目标进程的PID。sig:信号编号(如kill -l列出的信号)。信号捕获函数
sighandler_t signal(int signum, sighandler_t handler);signum:信号编号。handler:处理函数宏或自定义函数:SIG_DFL:默认处理。SIG_IGN:忽略信号。fun:自定义处理函数。SIG_ERR。共享内存是一种基于System V的进程间通信(IPC)机制,允许多个进程访问同一块内存区域。
生成键值函数
key_t ftok(const char *pathname, int proj_id);pathname:文件路径(需稳定存在)。proj_id:整型ID(常用ASCII字符)。申请共享内存函数
int shmget(key_t key, size_t size, int shmflg);key:唯一键值。size:内存大小。shmflg:权限标志(如IPC_CREAT或IPC_EXCL)。shmid)。映射共享内存函数
void *shmat(int shmid, const void *shmaddr, int shmflg);shmid:共享内存ID。shmaddr:本地地址(建议NULL由系统分配)。shmflg:读写标志(0为读写,SHM_RDONLY为只读)。(void*)-1。读写操作
memcpy()或strcpy()进行数据读写。撤销映射函数
int shmdt(const void *shmaddr);shmaddr:映射地址。删除对象函数
int shmctl(int shmid, int cmd, struct shmid_ds *buf);shmid:共享内存ID。cmd:命令宏(如IPC_RMID删除对象)。buf:属性结构(建议NULL)。ipcs -a(查看共享内存、信号量集、消息队列)。ipcrm -m(删除共享内存)。