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, ¶m);
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下配置静态IP地址,设置DNS和主机名
配置文件位于:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.3
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
使
IP地址生效:
/sbin/ifdown eth0
/sbin/ifup eth0
主机名配置 /etc/sysconfig/network
NETWO ......
今天的事太多,没有认真的完成任务,不过把服务器端的文件传输做好了!
明天把服务器端的代码集成起来测试一下,并把网络客户端程序做好!
把代码贴出来吧!便于保存!
头文件:server_udpsocket.h
#ifndef _SERVER_UDPSOCKET_H_
#define _SERVER_UDPSOCKET_H_
#include <stdio.h>
#include <stdlib.h>
......
在FC8中默认安装的有mysql,没有的话可以很方便的安装下。
默认的mysql的include文件目录在/usr/include/mysql
默认的mysql的lib文件夹在/usr/lib/mysql
这两个目录在我们编译时候需要到。
我的测试用的C代码为:
#include <stdio.h>
#include <stdlib.h>
#include <mysql.h>
#define CONN_HOST ......
在32位平台上编译动态库没有啥问题,拿到x86_64位平台上编译时出现了问题。
relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
照着提示编译代码的时候加入 -fPIC选项就ok.
......
一、USB从设备驱动介绍
USB总线上主要有三类设备:主控制器(Host Controller, such as
EHCI、UHCI、OHCI)、集线器(hub)和设备(device)。Host controller(HC)负责总线的管理
,
是总线的指挥官,总线上一切传输都是由HC发起的,支持OTG的Device也能发起传输;Hub是总线的节点,用来扩展总线上可接入设备的数量 ......