- 博客(18)
- 资源 (12)
- 收藏
- 关注
原创 挺实用的---测试sendto 的速率--精确microseconds
这几天,做网络摄像机,发过去的图像有时会出现 撕裂的情况,最后用代码测了一下,发现是由于发送的速度太快了 。 struct timeval tv; struct timezone tz; //时区信息 //gettimeofday(&tv ,&tz); //gettimeofday(struct timeval * ,struct timezone *)算时间,第儿个参数可以置NULL gettimeofday(&tv ,NULL); double time_start =tv.
2010-11-29 17:52:00 1542
原创 利用/proc/scsi/usb-storage来判断 U盘的移入/移出
<br />/proc/scsi/下的文件夹usb-storage 在没有插入 U盘的时候,它是不存在的,故我们判断U盘的插入还是移出 就是通过判断opendir这个目录成功还是失败来判断。<br /><br /> 1 #include<stdio.h><br /> 2 #include<sys/types.h><br /> 3 #include<dirent.h><br /> 4 #include<stdlib.h><br /> 5 <br /> 6 int main(int argc , c
2010-11-15 17:59:00 3830 5
原创 *** glibc detected *** ./test: free(): invalid pointer: 0x0854d1b4 ***
<br />*** glibc detected *** ./test: free(): invalid pointer: 0x0854d1b4 ***<br />======= Backtrace: =========<br />/lib/tls/i686/cmov/libc.so.6(+0x6b591)[0x208591]<br />/lib/tls/i686/cmov/libc.so.6(+0x6cde8)[0x209de8]<br />/lib/tls/i686/cmov/libc.so
2010-11-11 16:58:00 3998 1
转载 linux进程控制-exit()
<br />原文地址:<br />http://blog.chinaunix.net/u1/53053/showart_425191.html<br /> <br /> <br />#include<stdlib.h><br />void exit(int status);<br />不像fork那么难理解,从exit的名字就能看出,这个系统调用是用来终止一个进程的。无论在程序中的什么位置,只要执行到exit系统调用,进程就会停止剩下的所有操作,清除包括PCB在内的各种数据结构,并终止本进程的运行。请看
2010-11-10 17:03:00 779 1
转载 GCC制作Library---shared 部分相当不错
<br />原帖地址http://blog.csdn.net/alex_ww/archive/2009/09/12/4544207.aspx<br /><br />Library 可分成三种, static 、 shared 与 dynamically loaded 。 <br /><br />1. Static libraries<br /><br />Static 链接库用于静态链接,简单讲是把一堆 object 檔用 ar(archiver) 包装集合起来,文件名以 `.a' 结尾。优点是执行
2010-11-08 20:28:00 3312
转载 Linux系统编程学习笔记(七)内存管理
<br />原帖地址:http://fuliang.javaeye.com/blog/657650<br /> <br />内存管理: <br />对于一个进程来说,内存是最基本的也是最重要的资源之一。内存管理包括:内存分配、内存操作和内存释放。 <br />1、进程地址空间: <br />Linux将物理内存虚拟化,内核为每一个进程维护一个特殊的虚拟地址空间。这个地址是线性的,从0开始, <br />到某个最大值。 <br />1)页和页面调度 <br />虚拟地址空间由很多页组成
2010-11-07 19:16:00 861
转载 Linux中select函数学习及实例笔记
<br />原文地址:<br />http://www.cublog.cn/u3/104447/showart_2150356.html<br /> <br /> <br />Unix中的函数select和poll用来,支持Unix中I/O复用的功能,在Unix中I/O模型可以分为以一几种:(1)阻塞I/O(2)非阻塞I/O(3)I/O复用(select和poll)(4)信号驱动I/O(SIGIO)(5)异步I/O 其中,现在比较流行的I/O模型是阻塞I/O模型.阻塞I/O是当应用程序和内核交换数据时,
2010-11-07 17:57:00 725
转载 fstat、stat和lstat区别
<br />原帖地址:http://blog.chinaunix.net/u3/118714/showart_2323674.html<br /> <br /><br />stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不 同。<br />1<br />首先隆重介绍的是一个非常重要的”VIP”人物,他是fstat, stat和lstat三者都要用到的一个结构体类型,名字叫做struct stat。可以说,没有这个struc
2010-11-07 14:28:00 813
转载 浅析Linux内存映射: mmap ( 一)
<br />原文地址:<br />http://blog.csdn.net/dai_weitao/archive/2007/07/25/1707559.aspx<br /><br /><br /><br /> Linux提供了内存映射函数mmap, 它把文件内容映射到一段内存上(准确说是虚拟内存上), 通过对这段内存的读取和修改, 实现对文件的读取和修改, 先来看一下mmap的函数声明:头文件:<unistd.h><sys/mman.h>原型: void *mmap(void *addr, size_t l
2010-11-07 13:44:00 834
转载 换行符‘/n’和回车符‘/r’ 以及 ASCII码表
<br />原文地址:http://blog.sina.com.cn/s/blog_5d236e060100dup8.html<br /> <br />换行符‘/n’和回车符‘/r’<br />换行符‘/n’和回车符‘/r’<br />顾名思义,换行符就是另起一行,回车符就是回到一行的开头,所以我们平时编写文件的回车符应该确切来说叫做回车换行符 <br />'/n' 10 换行(newline)<br />'/r' 13 回车(return)<br /><br />也可以表示为'/x0a'和'/x0d'.
2010-11-07 01:02:00 9673
转载 ioctl函数 ---瑞士军刀
<br /><br />ioctl代表输入/输出控制,它用于通过文件描述来操作字符设备。<br />Ioctl的格式如下所示:<br />ioctl(unsigned int fd, unsigned int request, unsigned long argument)<br />如果出错则返回值为-1,如果请求成功则返回值将大于或者等于0,这就像其他系统调用一样。内核能区分特殊文件和普通文件。 特殊文件一般可以在/dev和/proc中找到。他们与普通文件的区别在于,他们隐藏了驱动程序的接口,并不是一个
2010-11-07 00:30:00 1107
原创 mmap语法没问题报错:--Invalid argument
<br />2010.11.5<br />今天用FrameBuffer来刷屏幕,显示图像,mmap语法没有什么问题,但是编译报错:invalid argument.<br />老师找了老久最后发现屏幕分辨率,有个bits_per_pixel 为4bits。显卡没有支持4bits的<br />下面是转一个帖子的内容:<br />1.开启内核对framebuffer的支持<br />我发现有很多种framebuffer模式,不太明白它们之间有什么区别,不过我的机器在Ubuntu 10.04下,vesaf
2010-11-05 19:38:00 5536 5
转载 内存字节对齐---代码实现(自己整理的,这是一切字节对齐最本质的东西)
一.什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生
2010-11-02 20:56:00 1492
原创 字节对齐详解
<br />(http://www.yuanma.org/data/2006/0723/article_1213.htm)一.什么是字节对齐,为什么要对齐?<br /> 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。<br /> 对齐的作用和原因:各个硬件平台对存储空间的
2010-11-02 20:20:00 508
转载 边界对齐---CSDN的一个帖子,说的挺不错的
<br />原帖地址:<br />http://blog.csdn.net/feijj2002_/archive/2007/05/03/1595163.aspx<br /><br /><br /><br /><br />结构体对齐的具体含义(#pragma pack)<br />作者:panic 2005年4月2日<br />还是来自csdn的帖子:<br />主 题: 探讨:内存对齐<br />作 者: typedef_chen ((名未定)(我要骗人))<br />等 级:
2010-11-02 20:10:00 693
转载 main函数返回值return 0
<br />原贴地址:<br />http://guoyueheng148.blog.163.com/blog/static/601670912008101601041259/<br /><br /><br />main函数,是C/C++程序中唯一可以直接运行的函数,其他函数都直接或间接由其调用执行。C/C++程序的执行开始于main()函数,一个结构良好的C/C++程序也应该结束于该函数。 renturn后面跟的值,代表main函数给操作系统的返回值,代表函数的执行状态!! 返回几都没有关系,因为你并没有
2010-11-02 10:48:00 3444 1
原创 指针数组和数组指针(一)
<br />C中这种该死的术语有很多,一直也不知道该怎么去理解,真是头疼死了,今天参考了网上的一些文章,自己写了一个小程序,算是有点理解。<br /><br /><br />先来介绍一下指针: 指针一种类型,理论上来说它包含其他变量的地址,因此有的书上也叫它:地址变量。既然指针是一个类型,是类型就有大小,在达内的服务器上或者普通的PC机上,都是4个字节大小,里边只是存储了一个变量的地址而已。不管什么类型的指针,char * ,int * ,int (*) ,string * ,float * ,
2010-11-01 20:10:00 921
原创 交换两个变量,而不引用第三个变量
<br />前几天同学去面试,聊了聊,说到一个问题,交换两个变量而不引入第三个变量,可能是我太RZ,不清,从网上找了找,写个例子如下:<br />(主要利用了--异或 操作!位操作)<br /> 1 #include<stdio.h><br /> 2 <br /> 3 void swap(int *a ,int *b);<br /> 4 int main()<br /> 5 {<br /> 6 int a ,b;<br /> 7 pr
2010-11-01 18:03:00 684
The Linux Kernel Module Programming Guide 2.6中英文版本
2011-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人