随笔分类 -  Linux编程

摘要:从linux内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。提醒一点,udev是应用层的,不要试图在内核的配置选项里找到它;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例,在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。大致用法如下:struct class *myclass ;class_create(THIS_MODULE, “my_device_driver”);device_create(myclass, NULL, MKDEV(major_num, mino 阅读全文
posted @ 2012-04-25 19:58 Think--@ 阅读(255) 评论(0) 推荐(0)
摘要:assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression );复制代码 assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#include <stdio.h>#include <assert.h>#include <stdlib.h>int mai 阅读全文
posted @ 2012-03-08 19:56 Think--@ 阅读(148) 评论(0) 推荐(0)
摘要:与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变的互斥锁。如果另一个线程改变了条件,它发信号给关联的条件变量,唤醒一个或多个等待它的线程,重新获得互斥锁,重新评价条件。pthread_ 阅读全文
posted @ 2012-03-08 19:54 Think--@ 阅读(310) 评论(0) 推荐(0)
摘要:kill(传送信号给指定的进程,使用 kill -l 命令可查看linux系统中信号。) 表头文件 #include<sys/types.h> #include<signal.h> 定义函数int kill(pid_t pid,int sig); 函数说明 kill()可以用来送参数sig指定的信号给参数pid指定的进程。参数pid有几种情况: pid>0 将信号传给进程识别码为pid 的进程。 pid=0 将信号传给和目前进程相同进程组的所有进程 pid=-1 将信号广播传送给系统内所有的进程 pid<0 将信号传给进程组识别码为pid绝对值的所有进程 参 阅读全文
posted @ 2012-03-07 16:09 Think--@ 阅读(666) 评论(0) 推荐(0)
摘要:转载http://hi.baidu.com/%B1%D5%C4%BF%B3%C9%B7%F0/blog/item/e7284ef16bcec3c70a46e05e.htmlselect函数使我们可以执行I/O多路转接。原型: #include sys/time.h> #include unistd.h> int select(int maxfd,fd_set *rdset,fd_set *wrset,fd_set *exset,struct timeval *timeout); 参数maxfd是需要监视的最大的文件描述符值+1;rdset,wrset,exset分别对应于需要检测的 阅读全文
posted @ 2012-03-07 15:58 Think--@ 阅读(309) 评论(0) 推荐(0)