📄 ex10_2.c
字号:
/*filename:ex7_2.c*/
#include <stdio.h>
#include <errno.h>
#include<pthread.h>
#include<unistd.h>
void *my_thread(void *arg)
{
int retval=0;
pthread_attr_t attr;
struct sched_param param;
size_t stacksize;
int detachstate;
int scope;
int inherit;
int policy;
if (pthread_attr_init(&attr)==0)
{
if (pthread_attr_getstacksize(&attr,&stacksize)==0)
{
printf("StackSize:%d\n");
}
if (pthread_attr_getdetachstate(&attr,&detachstate)==0)
{
if (detachstate==PTHREAD_CREATE_JOINABLE)
printf("DetachState:PTHREAD_CREATE_JOINABLE\n");
if (detachstate==PTHREAD_CREATE_DETACHED)
printf("DetachState:PTHREAD_CREATE_DETACHED\n");
}
if (pthread_attr_getscope(&attr,&scope)==0)
{
if (scope==PTHREAD_SCOPE_PROCESS)
printf("Scope :PTHREAD_SCOPE_PROCESS\n");
if (scope==PTHREAD_SCOPE_SYSTEM)
printf("Scope :PTHREAD_SCOPE_SYSTEM\n");
}
if (pthread_attr_getinheritsched(&attr,&inherit)==0)
{
if (inherit==PTHREAD_INHERIT_SCHED)
printf("InheritSched:PTHREAD_INHERIT_SCHED\n");
if (inherit==PTHREAD_EXPLICIT_SCHED)
printf("InheritSched:PTHREAD_EXPLICIT_SCHED\n");
}
if (pthread_attr_getschedpolicy(&attr,&policy)==0)
{
if (policy==SCHED_FIFO)
printf("SchedPolicy:SCHED_FIFO\n");
if (policy==SCHED_RR)
printf("SchedPolicy:SCHED_RR\n");
else
printf("SchedPolicy:SCHED_OTHER\n");
}
if (pthread_attr_getschedparam(&attr,¶m)==0)
{
printf("SchedPriority:%d\n",param.sched_priority);
}
pthread_attr_destroy (&attr);
}
pthread_exit(&retval);
}
int main()
{
int count;
pthread_t thread;
int *retval;
if (pthread_create(&thread,NULL,my_thread,(void*)NULL)!=0)
{
fprintf(stderr,"Count not create thread:%s\n",strerror(errno));
}
if (pthread_join(thread,(void **)(&retval))!=0)
{
fprintf(stderr,"No thread to join:%s\n",strerror(errno));
}
else
{
printf("Thread returned %d\n",*retval);
}
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -