信号量操作详解与实践
在多进程或多线程的编程环境中,信号量是一种重要的同步机制,用于控制对共享资源的访问。本文将详细介绍信号量的创建、访问修改、查询以及使用等操作。
1. 信号量集的创建与信息查询
使用 ./semop
工具可以创建新的信号量集,并查询其相关信息。以下是创建信号量集并查询信息的示例:
$ ./semop -k0xFEEDF00D -c3 -s
-c 0xFEEDF00D => IPC ID 196608
-c 3 : Created semaphore set -k 0xFEEDF00D
-s {
sem_nsems = 3
sem_perm {
cuid = 1001 (ehg)
cgid = 1001 (ehg)
uid = 1001 (ehg)
gid = 1001 (ehg)
mode = 0640
key = 0xFEEDF00D
};
};
操作步骤如下:
1. 使用 -k
和 -c
选项创建信号量集, -k
指定键值, -c
指定信号量数量。
2. 使用 -s
选项请求 IPC_STAT
命令,将重要信息输出到标准输出。
信号量集的权限模式受当前 umask