大佬教程收集整理的这篇文章主要介绍了在Linux上以root用户身份调用SCHED_FIFO线程的pthread_create()时获取EPERM,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_8@
我已经删除了将一个线程创建到一个只执行该操作的小程序中的代码.它看起来对我来说,但仍然得到错误.我究竟做错了什么?@H_301_8@
该程序:@H_301_8@
@H_301_8@
#include <stdio.h> #include <stdlib.h> #include <pthread.h> static void *_Thread(void *arg) { (void)arg; printf("Thread running!\n"); return NULL; } int main(void) { int retVal; pthread_attr_t attr; struct sched_param schedParam; pthread_t thread; retVal = pthread_attr_init(&attr); if (retVal) { fprintf(stderr,"pthread_attr_init error %d\n",retVal); exit(1); } retVal = pthread_attr_seTinheritsched(&attr,PTHREAD_EXPLICIT_scheD); if (retVal) { fprintf(stderr,"pthread_attr_seTinheritsched error %d\n",retVal); exit(1); } retVal = pthread_attr_setschedpolicy(&attr,scheD_FIFO); if (retVal) { fprintf(stderr,"pthread_attr_setschedpolicy error %d\n",retVal); exit(1); } schedParam.sched_priority = 1; retVal = pthread_attr_setschedparam(&attr,&schedParam); if (retVal) { fprintf(stderr,"pthread_attr_setschedparam error %d\n",retVal); exit(1); } retVal = pthread_create(&thread,&attr,_Thread,null); if (retVal) { fprintf(stderr,"pthread_create error %d\n",retVal); exit(1); } retVal = pthread_join(thread,"pthread_join error %d\n",retVal); exit(1); } printf("main run successfully\n"); return 0; }
该程序已编译并以root身份运行.运行时,程序在调用pthread_create时失败,返回EPERm.@H_301_8@
以上是大佬教程为你收集整理的在Linux上以root用户身份调用SCHED_FIFO线程的pthread_create()时获取EPERM全部内容,希望文章能够帮你解决在Linux上以root用户身份调用SCHED_FIFO线程的pthread_create()时获取EPERM所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。