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 | 时间函数 | 初始化或者撤销定时器 |

