Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

驱动支持select函数

驱动支持select函数

I/O多路转接至今还不是 POSIX的组成部分。SVR4和 4.3 + BSD都提供select函数以执行I/O多路转接。poll函数只由SVR4 提供。SVR4 实际上用poll实现select。I/O多路转接的基本思想是:先构造一张有关描述符的表,然后调用一个函数,它要到这些描述符中的一个已准备好进行 I/O时才返回。在返回时,它告诉进程哪一个描述符已准备好可以进行 I/O。I/O多路转接在服务器端用的比较多,可以同时处理多个连接的接入,但是也有缺陷,...
Linux下产生死锁问题分析

Linux下产生死锁问题分析

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。死锁要产生必须具备四个必要条件:1. 互斥条件 2. 请求和保持条件 3.不可剥夺条件 4. 环路等待条件。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。下面举一个Linux环境下产生死锁的程序(首先是驱动部分):#include <linux/module.h> #in...
Linux字符驱动中动态分配设备号与动态生成设备节点

Linux字符驱动中动态分配设备号与动态生成设备节点

在编写Linux内核驱动程序的时候,如果不动态生成设备号的话,需要自己手动分配设备号,有可能你分配的设备号会与已有设备号相同而产生冲突。因此推荐自动分配设备号。使用下面的函数:int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name)该函数需要传递给它指定的第一个次设备号baseminor(一般为0)和要分配的设备数count,以及...
I/O multiplexing 与 非阻塞网络编程

I/O multiplexing 与 非阻塞网络编程

使用I/O multipexing 的网络编程中,一般需要采用非阻塞网络编程的风格,防止服务端在处理高连接量大时候阻塞在某个文件描述符上面,比如某个socket 有大量的数据需要写,但是内核发送缓冲区已经填满,无法在一次write中将需要发送到数据发送出去,程序就会阻塞在该处,导致select/poll/epoll_wait() 此时不能处理其它到来的请求,同样read或者accept也可能出现阻塞的情况,比如当客户端发起connect,之后立刻关闭该链接...
Linux Socket 编程I/O Multiplexing

Linux Socket 编程I/O Multiplexing

Linux Socket 编程中I/O Multiplexing 主要通过三个函数来实现:select, poll,epoll来实现。I/O Multiplexing,先构造一张有关描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行I/O时,该函数才返回。在返回时,它告诉进程哪些描述符已准备好可以进行I/O。本文具体介绍一下select 和poll的用法,给出简单的demo代码,简要分析一下这两个函数的使用易出错的地方。#include&l...
Android studio删除工程项目

Android studio删除工程项目

本新手最近学Android都是用的eclipse。其实个人觉得eclipse不错,可能接触Android不久,倒也不觉得它慢还是怎样。对于Google的Android studio也是早有耳闻,前两天终于去下了一个,win7跟Ubuntu下面都装上了。当然,本人更习惯于在ubuntu下面开发。问题来了,发现找来找去就是不知道怎么删除Android studio里的工程项目。右键菜单啊,主菜单啊,什么都找不到名叫Delete或者叫Remove的菜单项。直接按...
Ubuntu编译qt4.8.5版本的库之后assistant和designer打不开解决

Ubuntu编译qt4.8.5版本的库之后assistant和designer打不开解决

本来我只是想交叉编译qt embedded的库,一开始选的是4.7.0的版本,编译器用的4.5.1,后来改成4.4.1,都不行。走了N多网站,不知在哪里看到有人建议不要用4.7.0的版本,于是去换了个4.7.3的版本,交叉编译器也改成4.4.3版本的。交叉编译器建议用这个版本,友善之臂的。其实解压之后去目录下一看就知道其实它也是用ct-ng配置出来的。记得在configure之前先修改mkspec/qws/linux-arm-g++/qmake.conf文...
<< 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 >>