易截截图软件、单文件、免安装、纯绿色、仅160KB

linux线程的优先级设置

linux并不是实时操作系统,把下面的代码运行一遍就能够理解了,代码有很详细的注释。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <string.h>
void * thr_fun(void *arg)
{
int policy, ret;
struct sched_param param;
//获取线程调度参数
ret = pthread_getschedparam(pthread_self(), &policy, &param);
if(ret!=0)
{
printf("pthread_getschedparam %s\n", strerror(ret) );
exit(1);
}
if (policy == SCHED_FIFO)
{
printf("policy:SCHED_FIFO\n");
}
else if (policy == SCHED_OTHER)
{
printf("policy:SCHED_OTHER\n");
}
else if (policy == SCHED_RR)
{
printf("policy:SCHED_RR\n");
}
printf("param:%d\n", param.sched_priority);
long long i;
while (1) {
i++;
i *= 2;
}
pthread_exit(NULL);
}
int main(void)
{
int ret;
pthread_t tid;
pthread_attr_t attr;
int policy, inher;
struct sched_param param;

//初始化线程属性
pthread_attr_init(&attr);
//获取继承的调度策略
ret = pthread_attr_getinheritsched(&attr, &inher);
if (ret!=0)
{
printf("pthread_attr_getinheritsched\n%s\n", strerror(ret));
exit(1);
}
//
if (inher == PTHREAD_EXPLICIT_SCHED)
{
printf("PTHREAD_EXPLICIT_SCHED\n");
}
else if (inher == PTHREAD_INHERIT_SCHED)
{
printf("PTHREAD_INHERIT_SCHED\n");
inher = PTHREAD_EXPLICIT_SCHED;
}
//设置继承的调度策略
//必需设置inher的属性为 PTHREAD_EXPLICIT_SCHED,否则设置线程的优先级会被忽略
ret = pthread_attr_setinheritsched(&attr, inher);
if (ret!=0)
{
printf("pthread_attr_setinheritsched\n%s\n", strerror(ret));
exit(1);
}

policy = SCHED_FIFO;//在Ubuntu9.10上需要root权限
//设置线程调度策略
ret = pthread_attr_setschedpolicy(&attr, policy);
if (ret!=0)
{
printf(" pthread_attr_setschedpolicy\n%s\n", strerror(ret));
exit(1);
}
param.sched_priority = 3;
//设置调度参数
ret = pthread_attr_setschedparam(&attr,


相关文档:

Linux中定位、查找文件的命令

which 语法 which command 说明 依序从path环境变量所列的目录中找出command的位置,并显示完整路径的名称。在找到第一个符合条件的程序文件时,就立刻停止搜索,省略其余未搜索目录。 范例,找出ls命令的程序文件的位置: which ls 系统输出: /usr/bin/ls whereis 语法 whereis [option] name 说明 找出特定 ......

LINUX下的一些家压缩安装命令

在fedora下解压.deb文件(没安装dpkg):
ar p filename.deb data.tar.gz | tar zxvf -
其它压缩文件的解压
#tar xv file.a
#uncompress file.Z
#gunzip file.gz
#bunzip2 file.bz2
#tar xvZf file.tar.Z 
#compress -dc file.tar.Z | tar xvf -
#tar xvzf file.tar.gz 
#gzip -dc file.tar.gz | tar ......

Linux USB gadget设备驱动解析(2) 驱动调试

      本文主要把在实现“linux模拟U盘功能”过程中的一些调试过程记录下来,并加以解析。
一、背景知识
    1、USB Mass Storage类规范概述

       USB 组织在universal Serial Bus Mass Storage Class ......

linux framebuffer驱动全篇

本文详细介绍如何编写一个显卡的驱动程序。
framebuffer
device在内核里面作为显卡驱动模型,许多函数和数据结构都是特定,正是这些特定的东西为我们的编程提供了方便。
要开发frame buffer
device驱动,你应该阅读Source\Source\Documentation\fb下面的说明文件,三个重要文件00-
INDEX,framebuffer.txt,internal ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号