c - 如何将 POSIX 信号量值设置为 1?

标签 c posix semaphore binary-semaphore

我正在用c语言实现信号量。我有一个POSIX计数信号量。我想给它赋值。我不想使用“等待”或“发布”。我可以这样做吗? POSIX Semaphore 是否有类似“setValue”的函数?

最佳答案

如果您可以在正常操作期间(即初始化除外)直接更改其值,那么它就不再是信号量了。所以您可能正在寻找不同的东西,也许是线程安全的计数器/共享变量?这种更复杂的共享对象通常使用基本同步原语来实现,例如锁/互斥体/信号量等。使用哪个取决于您想要实现的内容。

OTOH,您可能正在呈现 XY-problem 。也许如果您说出您真正想要实现的目标,我们可以为您指出更好/更简单/的解决方案。

关于c - 如何将 POSIX 信号量值设置为 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32190631/

相关文章:

c - 我应该在套接字生命周期内什么时候设置 TCP_QUICKACK 选项?

c - mkdir 系统调用偶尔会创建不可读的目录

无法识别 C++ 标准库头

python - 将负 float 转换为无符号整数

c - 警告 : format ‘%d’ expects argument of type ‘int *’ , 但参数 3 的类型为‘uint8_t * {aka unsigned char *}

c++ - posix 中的健壮 rwlock

c - 在一种方法中使用两个信号量

assembly - 迷你操作系统中针对不同信号量的现成队列的优缺点

c - 使用 typedef 时,二维数组如何在 C 中工作?

c - getnameinfo 指定 socklen_t