POSIX支持接口
Huawei LiteOS提供一套POSIX适配接口,具体的规格参见下表。
头文件 |
接口名 |
类型 |
说明 |
---|---|---|---|
mqueue.h |
mq_close |
消息队列 |
关闭消息队列 |
mqueue.h |
mq_getattr |
消息队列 |
获取消息队列属性 |
mqueue.h |
mq_open |
消息队列 |
打开消息队列 |
mqueue.h |
mq_receive |
消息队列 |
接受一个消息队列中的消息 |
mqueue.h |
mq_send |
消息队列 |
发送一个消息到消息队列 |
mqueue.h |
mq_setattr |
消息队列 |
设置消息队列属性 |
mqueue.h |
mq_timedreceive |
消息队列 |
定时接收消息 |
mqueue.h |
mq_timedsend |
消息队列 |
定时发送消息 |
mqueue.h |
mq_unlink |
消息队列 |
移除消息队列 |
pthread.h |
pthread_attr_destroy |
pthread |
删除线程的属性 |
pthread.h |
pthread_attr_getdetachstate |
pthread |
获取脱离状态的属性 |
pthread.h |
pthread_attr_getinheritsched |
pthread |
获取任务调度方式 |
pthread.h |
pthread_attr_getschedparam |
pthread |
获取任务调度参数 |
pthread.h |
pthread_attr_getschedpolicy |
pthread |
获取任务调度策略属性,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR |
pthread.h |
pthread_attr_getscope |
pthread |
获取任务范围属性,Huawei LiteOS任务使用范围目前只支持PTHREAD_SCOPE_SYSTEM,不支持PTHREAD_SCOPE_PROCESS |
pthread.h |
pthread_attr_getstackaddr |
pthread |
获取任务堆栈的起始地址 |
pthread.h |
pthread_attr_getstacksize |
pthread |
获取任务属性堆栈大小 |
pthread.h |
pthread_attr_init |
pthread |
初始化任务属性 |
pthread.h |
pthread_attr_setdetachstate |
pthread |
设置任务属性分离状态 |
pthread.h |
pthread_attr_setinheritsched |
pthread |
设置任务调度方式 |
pthread.h |
pthread_attr_setschedparam |
pthread |
设置任务调度参数,Huawei LiteOS设置任务优先级的参数值越小,任务在系统中的优先级就越高,与标准库函数相反。注意:需要将pthread_attr_t任务属性的inheritsched字段设置为PTHREAD_EXPLICIT_SCHED,否则设置的任务调度优先级将不会生效,系统默认设置为PTHREAD_INHERIT_SCHED |
pthread.h |
pthread_attr_setschedpolicy |
pthread |
设置任务调度策略属性,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR |
pthread.h |
pthread_attr_setscope |
pthread |
设置任务范围属性,Huawei LiteOS任务使用范围目前只支持PTHREAD_SCOPE_SYSTEM,不支持PTHREAD_SCOPE_PROCESS |
pthread.h |
pthread_attr_setstackaddr |
pthread |
设置任务堆栈的起始地址 |
pthread.h |
pthread_attr_setstacksize |
pthread |
设置任务属性堆栈大小 |
pthread.h |
pthread_cancel |
pthread |
取消任务,Huawei LiteOS仅支持先设置PTHREAD_CANCEL_ASYNCHRONOUS状态,再调用pthread_cancel取消任务 |
pthread.h |
pthread_cond_broadcast |
pthread |
唤醒所有被阻塞在条件变量上的线程 |
pthread.h |
pthread_cond_destroy |
pthread |
释放条件变量 |
pthread.h |
pthread_cond_init |
pthread |
初始化条件变量 |
pthread.h |
pthread_cond_signal |
pthread |
释放被阻塞在条件变量上的一个线程 |
pthread.h |
pthread_cond_timedwait |
pthread |
超时时限内等待一个条件变量,当超时等待时间为相对时间,Huawei LiteOS不能处理早已超时的情况 |
pthread.h |
pthread_cond_wait |
pthread |
等待一个条件变量 |
pthread.h |
pthread_condattr_destroy |
pthread |
删除存储并使属性对象无效 |
pthread.h |
pthread_condattr_getclock |
pthread |
获取任务时钟 |
pthread.h |
pthread_condattr_getpshared |
pthread |
获取条件变量属性,Huawei LiteOS只支持获取PTHREAD_PROCESS_PRIVATE条件变量属性 |
pthread.h |
pthread_condattr_init |
pthread |
初始化条件变量属性 |
pthread.h |
pthread_condattr_setclock |
pthread |
设置任务时钟 |
pthread.h |
pthread_condattr_setpshared |
pthread |
设置条件变量属性 |
pthread.h |
pthread_create |
pthread |
创建任务 |
pthread.h |
pthread_detach |
pthread |
分离任务 |
pthread.h |
pthread_equal |
pthread |
判断是否为同一任务 |
pthread.h |
pthread_exit |
pthread |
任务退出 |
pthread.h |
pthread_getschedparam |
pthread |
获取任务优先级及调度参数,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR |
pthread.h |
pthread_getspecific |
pthread |
获取调用线程的键绑定 |
pthread.h |
pthread_join |
pthread |
阻塞任务 |
pthread.h |
pthread_key_create |
pthread |
分配用于标识进程中线程特定数据的键 |
pthread.h |
pthread_key_delete |
pthread |
销毁现有线程特定数据键 |
pthread.h |
pthread_mutex_destroy |
pthread |
删除互斥锁 |
pthread.h |
pthread_mutex_getprioceiling |
pthread |
获取互斥锁的优先级上限 |
pthread.h |
pthread_mutex_init |
pthread |
初始化互斥锁 |
pthread.h |
pthread_mutex_lock |
pthread |
申请互斥锁(阻塞操作) |
pthread.h |
pthread_mutex_setprioceiling |
pthread |
设置互斥锁的优先级上限 |
pthread.h |
pthread_mutex_timedlock |
pthread |
申请互斥锁(只在设定时间内阻塞) |
pthread.h |
pthread_mutex_trylock |
pthread |
尝试申请互斥锁(非阻塞) |
pthread.h |
pthread_mutex_unlock |
pthread |
释放互斥锁 |
pthread.h |
pthread_mutexattr_destroy |
pthread |
销毁互斥锁属性对象 |
pthread.h |
pthread_mutexattr_getprioceiling |
pthread |
获取互斥锁属性的优先级上限 |
pthread.h |
pthread_mutexattr_getprotocol |
pthread |
获取互斥锁属性的协议属性 |
pthread.h |
pthread_mutexattr_gettype |
pthread |
获取互斥锁的类型属性 |
pthread.h |
pthread_mutexattr_init |
pthread |
初始化互斥锁属性对象 |
pthread.h |
pthread_mutexattr_setprioceiling |
pthread |
设置互斥锁属性的优先级上限 |
pthread.h |
pthread_mutexattr_setprotocol |
pthread |
设置互斥锁属性的协议属性 |
pthread.h |
pthread_mutexattr_settype |
pthread |
设置互斥锁的类型属性 |
pthread.h |
pthread_once |
pthread |
一次性操作任务 |
pthread.h |
pthread_self |
pthread |
获取任务ID |
pthread.h |
pthread_setcancelstate |
pthread |
任务cancel功能开关 |
pthread.h |
pthread_setcanceltype |
pthread |
设置任务cancel类型 |
pthread.h |
pthread_setschedparam |
pthread |
设置任务优先级及调度策略,Huawei LiteOS目前仅支持SCHED_RR调度策略,不支持SCHED_OTHERSCHED_FIFOSCHED_RR |
pthread.h |
pthread_setschedprio |
pthread |
设置任务优先级 |
pthread.h |
pthread_setspecific |
pthread |
设置线程数据 |
pthread.h |
pthread_testcancel |
pthread |
cancel任务 |
sched.h |
sched_get_priority_max |
调度函数 |
获取系统支持的最大的优先级值 |
sched.h |
sched_get_priority_min |
调度函数 |
获取系统支持的最小的优先级值 |
sched.h |
sched_yield |
调度函数 |
使当前线程放弃占用CPU |
semaphore.h |
sem_destroy |
信号量 |
销毁无名信号量 |
semaphore.h |
sem_getvalue |
信号量 |
获取指定信号量的值 |
semaphore.h |
sem_init |
信号量 |
初始化无名信号量 |
semaphore.h |
sem_post |
信号量 |
释放一个指定的无名信号量 |
semaphore.h |
sem_timedwait |
信号量 |
申请一个超时等待的无名信号量,当超时等待时间为相对时间时,Huawei LiteOS不能处理早已超时的情况 |
semaphore.h |
sem_trywait |
信号量 |
尝试申请一个无名信号量 |
semaphore.h |
sem_wait |
信号量 |
申请等待一个无名信号量 |
time.h |
nanosleep |
时间函数 |
进程以纳秒为单位休眠,但Huawei LiteOS目前只支持tick(默认10ms)休眠,第二个参数不支持,且传参所设置的秒数不能大于4292秒 |
time.h |
timer_create |
时间函数 |
创建定时器,只支持SIGEV_THREAD在线程内处理(Huawei LiteOS有两种实现方式,在线程或者在中断中处理timer的回调函数,具体采用哪种方式由宏开关LOSCFG_BASE_CORE_SWTMR_IN_ISR控制);clock_id只支持CLOCK_REALTIME |
time.h |
timer_delete |
时间函数 |
删除定时器 |
time.h |
timer_getoverrun |
时间函数 |
获取定时器超时次数 |
time.h |
timer_gettime |
时间函数 |
获得一个定时器剩余时间 |
time.h |
timer_settime |
时间函数 |
初始化或者撤销定时器 |