欢迎使用Markdown编辑器
最近在开发中遇到了线程创建函数pthread_create()报错的情况,特此记录。
EAGAIN,EINVAL,EPERM等相关的宏定义在<errno.h> 头文件中,引入后才能使用。
函数调用
其中对返回值的判断如下
编译运行
修改运行方式
以root身份运行,即在运行编译完成的二进制程序前添加sudo,phtread_create()函数可以成功调用,函数运行成功。
结论
在线程属性设置时,设置实时调用优先级,kernel会检查程序运行者是否有权限创建实时线程,无权限则返回EPERM
res = pthread_attr_setschedpolicy(&myAttr1, SCHED_FIFO);