Amazon FreeRTOS: POSIX
返回主页↑
semaphore.h 文件引用

信号量。 更多……

#include "FreeRTOS_POSIX/time.h"
#include "FreeRTOS_POSIX_types.h"

转到此文件的源代码。

Typedefs

typedef PosixSemType_t sem_t
 信号量类型。
 

函数

int sem_destroy (sem_t *sem)
 销毁未命名的信号量。 更多……
 
int sem_getvalue (sem_t *sem, int *sval)
 获取信号量的值。 更多……
 
int sem_init (sem_t *sem, int pshared, unsigned value)
 初始化未命名的信号量。 更多……
 
int sem_post (sem_t *sem)
 解锁信号量。 更多……
 
int sem_timedwait (sem_t *sem, const struct timespec *abstime)
 锁定带超时的信号量。 更多……
 
int sem_trywait (sem_t *sem)
 锁定信号量(如有)。 更多……
 
int sem_wait (sem_t *sem)
 锁定信号量。 更多……
 

详细描述

函数文档

◆ sem_destroy ()

int sem_destroy ( sem_t sem

销毁未命名的信号量。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_destroy.html
返回值
0——成功完成后
注意
无论信号量上当前是否有线程受阻,都会销毁该信号量。

◆ sem_getvalue ()

int sem_getvalue ( sem_t sem,
int *  sval 

获取信号量的值。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_getvalue.html
返回值
0——成功完成后
注意事项
如果锁定了 sem,则将 sval 指向的对象设置为零。

◆ sem_init ()

int sem_init ( sem_t sem,
int  pshared,
unsigned  value 

初始化未命名的信号量。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_init.html
注意事项
pshared 被忽略。始终视信号量为“共享”。
返回值
0——成功完成后
-1——其他情况。此时还设置了系统错误变量 errno。
副作用:可用 errno 值

EINVAL - 值参数超过 {SEM_VALUE_MAX}。
ENOSPC - 初始化信号量所需的资源已用尽。

◆ sem_post ()

int sem_post ( sem_t sem

解锁信号量。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_post.html
返回值
0——成功完成后

◆ sem_timedwait ()

int sem_timedwait ( sem_t sem,
const struct timespec abstime 

锁定带超时时间的信号量。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_timedwait.html
返回值
0——成功完成后
-1——其他情况。此时还设置了系统错误变量 errno。
副作用:可用 errno 值

EINVAL - 参数指定的纳秒字段值小于零或大于或等于 1 亿
ETIMEDOUT - 在指定的超时时间到期前无法锁定信号量。
注意
未实现死锁检测。

◆ sem_trywait ()

int sem_trywait ( sem_t sem

锁定信号量(如有)。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_trywait.html
返回值
0——成功完成后
-1——其他情况。此时还设置了系统错误变量 errno。
副作用:可用 errno 值

EAGAIN - 信号量已锁定,无法立即通过 sem_trywait() 操作进行锁定。

◆ sem_wait ()

int sem_wait ( sem_t sem

锁定信号量。

另请参阅
http://pubs.opengroup.org/onlinepubs/9699919799/functions/sem_wait.html
返回值
0——成功完成后
-1——其他情况。此时还设置了系统错误变量 errno。
注意
未实现死锁检测。