摘要: 面试题汇总(c语言,数据结构,linux系统编程,网络)2010-03-18 12:41C语言面试题大汇总,个人觉得还是比较全地!!!4. static有什么用途?(请至少说明两种)1.限制变量的作用域(用在全局变量中,限制本文件中使用此变量)。2.设置变量的存储域(全局静态变量存储在全局静态数据... 阅读全文
posted @ 2014-05-28 22:20 HEYP 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 多线程在笔试面试中经常出现,下面列出一些公司的多线程笔试面试题。首先是一些概念性的问答题,这些是多线程的基础知识,经常出现在面试中的第一轮面试(我参加2011年腾讯研究院实习生招聘时就被问到了几个概念性题目)。然后是一些选择题,这些一般在笔试时出现,虽然不是太难,但如果在选择题上花费大多时间无疑会对... 阅读全文
posted @ 2014-05-28 22:10 HEYP 阅读(798) 评论(0) 推荐(0) 编辑
摘要: 链表的常见操作 链表是数据结构的重要内容,在计算机程序中应用广泛,同时也是各公司笔试题目的重点。 以下简单实现了链表的一些操作,包括创建、增加节点、删除节点、单链表逆置、合并有序链表等。一、链表创建 链表主要有三种形式,包括单链表、双链表和循环链表。 单链表每个节点只包含一个后驱指针,双链表... 阅读全文
posted @ 2014-05-28 21:59 HEYP 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 小小地跟踪下read函数,从ssize_t read(int fd, void *buf, size_t count)到DATASHEET一调到底,见证内核的分层模块化。--内核服务例程开始提供服务----fs/read_write.c--SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count){ struct file *file; ssize_t ret = -EBADF; int fput_needed; file = fget_light(fd, &fput_needed... 阅读全文
posted @ 2013-11-26 15:31 HEYP 阅读(1050) 评论(0) 推荐(0) 编辑
摘要: 本文档描述libusb的API,以及如何开发USB应用。1 介绍1.1 概览本文档描述libusb-0.1的API和USB相关内容。1.2 当前OS支持Linux 2.2或以上FreeBSD/NetBSD/OpenBSDDarwin/MacOSX2 API2.1 设备与接口一个设备可能有多个接口,所以一个句柄可以返回多个接口实例。不要忘记调用 usb_claim_interface() 。2.2 超时总是以毫秒为单位。2.3 数据类型同时使用有抽象结构和非抽象结构来保持可移植性。2.4 同步所有libusb v0.1的函数都是同步的,这意味着操作完成或超时前不会返回。异步操作从libusb v 阅读全文
posted @ 2013-11-13 17:28 HEYP 阅读(1380) 评论(0) 推荐(0) 编辑
摘要: 这两天发现手头一个usb指纹头出现了一点状况,若libusb以同步方式发送bulk transfer出现阻塞。经过测试发现跟timeout有些关系:若timeout为0(无timeout),不会阻塞;若timeout为1000或者2000,则会。另外,若采用异步方式传送bulk transfer,则不会阻塞。同步方式libusb_bulk_transfer(devh, ep_bulk, buf, CAM_BUF_SZ, &len, timeout);进入libusb研究,发现libusb是采用异步方式来实现的。在do_sync_bulk_transfer中:staticint do_s 阅读全文
posted @ 2013-11-13 17:16 HEYP 阅读(6070) 评论(0) 推荐(0) 编辑
摘要: 笔者曾得到一个类似于加密“狗”的USB设备,要使之在Linux下正常工作。然而,通过一个名为USBView的小程序判断,Linux内核无 法驱动这个USB设备,并且在“Linux USB Working Devices”的列表中也没有找到该设备,这意味着只有很少的人在使用这种类型的 USB设备。 在Linux的/proc/bus/usb/devices文件中,有这个USB设备的一些信息: T: Bus=01 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#=4 Spd=1.5 MxCh=0D: Ver=1.00 Cls=ff(vend.) Sub=00 Prot=ff M. 阅读全文
posted @ 2013-11-13 16:40 HEYP 阅读(2368) 评论(0) 推荐(0) 编辑
摘要: libusb must be mounted usbfs今天通过libusb访问一个HID的设备,一调用USBDEVFSCLAIMINTERFACEioctl就返回-1设备忙, 找了一下午原因也没有找到, 快到下班的时候, 发现了一篇文章Porting Libusb for Android on the Beagleboard in 5 steps提到 需要把设备加载到usbfs上,结果加载了usbfs设备就能正常访问了。在网上搜了一圈,发现libusb就是通过usbfs或usbdevfs来链接USB设备,所以在使用之前 必须加载usbfs到/dev/bus/usb或/proc/bus/usb 阅读全文
posted @ 2013-11-13 16:31 HEYP 阅读(726) 评论(0) 推荐(0) 编辑
摘要: Better-zyy博客园首页博问闪存新随笔联系订阅管理随笔-20 文章-6 评论-1[转载]Linux TCP/IP 协议栈源码分析一.linux内核网络栈代码的准备知识1.linux内核ipv4网络部分分层结构:BSD socket层:这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于tcp/ip,即建立了AF_INET形式的socket时,还需要保留些额外的参数 阅读全文
posted @ 2013-11-11 11:19 HEYP 阅读(341) 评论(0) 推荐(0) 编辑
摘要: socket结构体传输时,字符串结构体成员要使用数组定义,如:typedef struct{int id;char info[100]; }Data_info;不能使用指针,send发送的是一块连续的内存,结构体带指针的不能直接发送,因为指针传递到接收端就变成野指针,指针的话实际上结构体内存中存的只是个指针,即是个32位的unsignedint值,但要是数组的话,那么就是一块内存。typedef struct{int id;char *info; //这样是错的}Data_info;备注:sizeof(Data_info)==4,说明数组在结构体存的是地址,但是传输时是一整段内存。demo测试 阅读全文
posted @ 2013-11-08 11:09 HEYP 阅读(2257) 评论(0) 推荐(0) 编辑