- 博客(22)
- 收藏
- 关注
原创 send 与 recv 返回错误
send 与 recv 返回错误查了半天,原来是send 与 recv两者定义的数据长度宏值不一致,导致了接收或者发送失败。教训:如果是明确的发送长度或者接收长度,一定要保持一致。
2013-09-17 09:32:06
839
原创 在终端增加自定义shell命令
为了程序的调试,以及在程序运行过程中查看或者人为干预程序运行,可在终端输入自定义的命令,以执行命令来达到目的。实现方式运用到了UNIX域套接字的进程间通信方式。分服务器端程序与客户程序。服务器程序中使用bind/listen/accept函数,为客户程序安排一个唯一UNIX域套接字。客户进程使用connect与服务器程序进行连接。关于命令码创建具体可有两种实现方式:1.静态创建
2012-02-28 14:23:02
1355
原创 initcall机制
initcall 机制。它利用gcc的扩展功能以及ld 的连接控制脚本实现了在代码初始化的过程中通过简单的循环就实现了相关模块和组件的初始化。核心代码:do_initcalls函数如下:void d o_ i n i t c a l l s ( void ){ i n i t c a l l _t *call ; f o r ( c a l l = &_
2012-02-28 13:52:26
669
转载 解决IE不能打开新的窗口
修复IE浏览器 在开始里分别输入以下命令regsvr32 Shdocvw.dll regsvr32 Oleaut32.dll regsvr32 Actxprxy.dll regsvr32 Mshtml.dll regsvr32 Urlmon.dll regsvr32 browseui.dll 以上命令不仅可以解决IE不能打开新的窗口,用鼠标点击超链接也没有任何反应的问题
2012-02-28 12:43:23
492
原创 VMware虚拟机与主机的网络通信模式
VMware提供了三种网络模式,最近一一试了一把,下面把配置要点总结一下:1.桥接模式:bridgedlinux虚拟机与windows宿主机能互相ping通的前提是网卡与外网相连,拔掉外网线,虚拟机无法与宿主机通信。桥接模式用的都是物理网卡,拔掉网线无法形成桥接。a).vmware中对应的是vmnet0,virtual network editor选择automatic bridgei
2011-11-24 15:23:13
1912
转载 指定初始化
<br />在阅读GNU/Linux内核代码时,我 们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定初始化(designated initializer)。下面我们看一个例子,Linux-2.6.x/drivers/usb/storage/usb.c中有这样一个结构体初始化 项目: static struct usb_driver usb_storage_driver = { .owner = THIS_MODULE,
2011-01-14 10:00:00
1246
转载 swap
揭开Linux的Swap之谜 Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。 <br />Swap的原理是一个较复杂的问题,需要大量的篇幅来说明。在这里只作简单的介绍,在以后的文章中将和大家详细讨论Swap实现的细节。 <br />众所周知,现代操作系统都实现了“虚拟内存”这一技术,不但在功能上突破了物理内存的限制,使程序可以操纵大于实际物理内存的
2010-12-08 13:47:00
6733
转载 windows dos 与nunix 格式不兼容问题
<br />提示:bad interpreter:No such file or directory<br />上网上找了好久,总算发现原来是文件格式的问题。这个文件是我在Windows下编写的。<br />换行的方式与Unix不一样,但是在VI下面如果不Set一下又完全看不出来。<br />气晕过去了~~~希望不会有人跟我一样倒楣,花了好几个小时in vain!!<br />解决方法:<br />1、程序是在一个网站上看到的,我保存下来,大致修改了一下。<br /> <br />2、上传到linux主机运
2010-11-22 13:36:00
787
转载 互斥与同步
线程同步:何时互斥锁不够,还需要条件变量?<br />很显然,pthread中的条件变量与Java中的wait,notify类似<br />假设有共享的资源sum,与之相关联的mutex 是lock_s.假设每个线程对sum的操作很简单的,与sum的状态无关,比如只是sum++.那么只用mutex足够了.程序员只要确保每个线程操作前,取得lock,然后sum++,再unlock即可.每个线程的代码将像这样add()<br />{<br /> pthread_mutex_lock(lock_s);<br /
2010-11-17 11:43:00
877
转载 为什么会出现undefined reference to ''错误
原因1未被编译导致链接不到原因2链接的不对!undefinedreference to error解决方法陈运文Linux下编译程序时,经常会遇到“undefined reference error” 报错,这里总结一些可能的原因和解决方案,给需要的朋友:说道undefined reference error,先提一下Linux gcc链接规则:链接
2010-10-23 14:56:00
4889
原创 Fedora 9 vmware 上网问题
<br />VMware下安装Fedora 9 后不能上网,显示处于脱机工作,这是系统默认情况?!<br />在Firefox浏览器的文件菜单中点掉脱机工作选项后即可正常上网
2010-10-18 19:23:00
914
1
转载 PCI
<br />第六章 PCI<br /><br /><br />外围设备互连(PCI)是一种将系统中外部设备以结构化与可控制方式连接到起来的总线<br />标准,包括系统部件连接的电气特性及行为。本章将详细讨论Linux核心对系统中的PCI<br />总线与设备的初始化过程。<br /><br />PCI总线和PCI-PCI桥接器在连接系统中设备到上起关键作用,在这个系统中CPU和视频<br />设备被连到PCI bus 0上,它是系统中的主干PCI总线。而PCI-PCI桥接器这个特殊PCI<br />设备将
2010-10-15 16:47:00
616
转载 Image
zImage和uImage的区别 摘自: http://user.qzone.qq.com/85221810/blog/1247317141<br /><br /><br />一、vmlinuzvmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。<br />vmlinuz 的建立有两种方式。一是编译内核时通过“make zImage”创建,然后
2010-10-14 14:33:00
648
转载 fork
当要创建一个子进程的时候就用fork()函数,它一般有两种应用,第一,创建一个子进程用来执行和父进程不同的代码段,这个在网络中应用比较广,比如服务器端fork一个子进程用来等待客户端的请求,当请求到来时,子进程响应这个请求,而父进程则继续等待客户端请求的到来;第二,创建一个子进程用来执行和父进程不同的程序,这种应用往往 fork一个子进程之后立即调用exec族函数,exec族函数则调用新的程序来代替新创建的子进程。
2010-10-07 14:31:00
488
原创 进程间通信
<br />进程通信:消息队列、信号量、共享存储、UNIX域套接字<br />见《深入理解LINUX内核v3》Page:796<br />消息队列:<br />sprintf(MsgPath,"/recMsg%d", ID);<br />mq_unlink(MsgPath);<br />mqd_t mqdes = mqd_t mq_open(const char *name, int oflag, va_list args)<br />ps:mq_open(MsgPath, O_CREAT|O_RDWR|O
2010-10-07 10:57:00
678
转载 sem信号量
作者:曹忠明,华清远见嵌入式学院讲师。一、线程控制上一节我们讲了使用互斥量实现线程的同步,这里我们介绍一下另外一种常用的方法,POSIX提供的无名信号量sem,PV原语是对整数计数器信号量sem的操作,P操作判断sem资源数是否为0,不为0则进行P操作,一次P操作可使sem减一,而一次V操作可使sem加一。下面是POSIX提供的一些接口函数:1、信号量初始化 #include int sem_init(sem_t *sem, int pshared, unsigned int
2010-09-20 15:42:00
962
转载 NAS
<br /><br />NAS:Network Attached Storage,网络附加存储,NAS设备通常是集成了处理器和磁盘/磁盘柜,连接到TCP/IP网络上(可以通过LAN或WAN),通过文件存取协议(例如NFS,CIFS等)存取数据。NAS将文件存取请求转换为内部I/O请求。这种方式是将存储设备连接到基于IP的网络中,不同于DAS和SAN,服务器通过“File I/O”方式发送文件存取请求到存储设备NAS。NAS上一般安装有自己的操作系统,它将File I/O转换成Block I/O,发送到内部磁
2010-09-13 20:29:00
1235
转载 LUN
a、LUN的概念 LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,我们可以用Target ID(也有称为SCSI ID的)来描述这些设备,设备只要一加入系统,就有一个代号,我们在区别设备的时候,只要说几号几号就ok了。 而实际上我们需要用来描述的对象,是远远超过该数字的,于是我们引进了LUN的概念,也就是说LUN ID的作用就是扩充了Target ID。每个Target下都可以有多个LUN Devic
2010-09-13 19:17:00
807
原创 YUV 422转420
<br />1.首先熟悉一下YUV的两种存储格式:<br /> 一个是打包格式,也就是YUV值按一定的顺序存放在一个数组中,4:2:2格式(YUY2、YUYV、YVYU、UYVY)都是用这种形式存放在内存当中的。<br /> 另一个种格式是:平面格式,Y、U、V都存放在各自的位置,4:2:0格式(YV12、IMC1、IMC3形式)用的这种存储方式,而4:2:0格式中的NV12存储则是Y单独存,UV则交错存储,如UVUVUV。<br /><br />2.从UYVY422到IMC3的转换函数:<
2010-09-01 21:03:00
2734
转载 dup与dup2
<br />相信大部分在Unix/Linux下编程的程序员手头上都有《Unix环境高级编程》(APUE)这本超级经典巨著。作者在该书中讲解dup/dup2之前曾经讲过“文件共享”,这对理解dup/dup2还是很有帮助的。这里做简单摘录以备在后面的分析中使用:<br />Stevens said:<br />(1) 每个进程在进程表中都有一个记录项,每个记录项中有一张打开文件描述符表,可将视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:<br />(a) 文件描述符标志。<br />(b) 指向
2010-09-01 20:21:00
384
转载 YUV格式详解(很详细很有帮助)
YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇对yuv格式解释的比较清楚地文章,也可以直接参考微软的那篇文章。对于YUV格式,比较原始的讲解是MPEG-2 VIDEO部分的解释,当然后来微软有一个比较经典的解释,中文的大多是翻译这篇文章的。文章来源:http://msdn.microsoft.com/en-us/library/aa9
2010-08-28 11:42:00
558
原创 串口通信
<br />串口通信<br /> <br />最近做了串口传送数据的实验,主要是设置设置串口传输速度,串口属性参数,对其初始化后,便可以用相应的文件描述符来读取与发送数据。具体代码如下:<br />/***********************************************<br />*Function: set_speed<br />*Description: 设置串口传输速度<br />*Input: fd 串口的句柄<br />*speed 串口传输速度 <
2010-08-22 20:29:00
464
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人