自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (11)
  • 收藏
  • 关注

转载 快速精通FRAME

FRAME(框架)是Web上经常会看到的页面结构。使用可视Web开发工具(比如Dreamweaver或者Frontpage),虽然可以在 WYSIWYG环境中通过简单的鼠标托拽完成FRAME的构建,但是要实现真正细致甚至强大的功能,仔细理解FRAME的代码结构至关重要!你将发现,FRAME原来是这样的亲切易用。  创建基本的FRAMESET   FRAMESET页面与普遍的Web页

2012-01-18 13:37:16 1976

原创 apache配置

1.下载httpd-2.2.15.tar.gz 2. tar zxvf httpd-2.2.15.tar.gz       #解压文件会生成httpd-2.2.15目录 3../configure --prefix=/usr/local/apache-2.2.15  --enab

2011-07-21 18:18:57 2173

原创 ACE之反应堆学习(一)

 这是ACE反应堆的动态实现过程,其设计的架构分为以上几个框图,这里我结合源代码分析一下。(一)register_handler():1.用户程序:ACE_Reactor::instance ()->register_handler(endpoint, ACE_Event_Handler::READ_MASK) == -1);              参数1:handler(图中由h表示)2.反应堆(ACE_Reactor):this->implementation ()->register_handle

2011-05-14 14:43:00 4558

原创 公司HR面试经常问的问题及回答思路

<br />    <br />问题一:“请你自我介绍一下”<br />思路:<br />1、这是面试的必**目。<br />2、介绍内容要与个人简历相一致。<br />3、表述方式上尽量口语化。<br />4、要切中要害,不谈无关、无用的内容。<br />5、条理要清晰,层次要分明。<br />6、事先最好以文字的形式写好背熟。<br /><br />问题二:“谈谈你的家庭情况”<br />思路:<br />1、 况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。<br /

2011-04-06 18:05:00 2973

原创 在ubuntu下安装ACE编译环境

<br />1.使用http://riverace.com/downloads.htm#ace_releases下载下来的ACE包进行编译:<br />2.先用gedit /etc/bash.bashrc 打开脚本文件,并在上面加上一下环境变量<br />#ACE env<br />export ACE_ROOT=/ACE_wrappers<br />export MPC_ROOT=$ACE_ROOT/MPC<br />export LD_LIBRARY_PATH=$ACE_ROOT/lib:/usr/lo

2011-04-03 13:23:00 3738

转载 Linux—— Posix IPC

<br />最好的参考资料:<br />1.师从互联网。<br />2.UNP v2 Posix IPC的相关章节2、5、10、13。<br />3.Linux man 命令。<br />      先缅怀下 Stevens 大师。好那么开始~~~~  说点不打紧的,虽说Posix IPC 是标准的IPC,是以后趋势,但是,现在大多数应用程序仍然在使用 System V IPC机制。这里从APUE和《深入理解Linux内核架构》一点都没介绍,ULK也只是介绍了Posix 消息队列。<br />第一条:Pos

2011-03-18 16:07:00 6991

转载 从网上搜索到的一些关于pcap源代码,入门级的

<br />#include <stdio.h><br />#include <stdlib.h><br />#include <pcap.h>  /* 如果没有pcap的系统,要自己下载一个 */<br />#include <errno.h><br />#include <sys/socket.h><br />#include <netinet/in.h><br />#include <arpa/inet.h><br />int main(int argc, char **argv)<br />{<br

2011-03-16 15:48:00 2247

原创 如何开启_GNU_SOURCE宏

<br />在编写网络程序时,会涉及到一些关于BSD系统保留下的结构体和宏定义,关于一切配置在linux系统的/usr/include/features.h文件中,开启项如下:<br />#ifdef _GNU_SOURCE<br /># undef  _ISOC99_SOURCE<br /># define _ISOC99_SOURCE 1<br /># undef  _POSIX_SOURCE<br /># define _POSIX_SOURCE  1<br /># undef  _POSIX_C_S

2011-03-09 16:34:00 7732

转载 查看返回接收到UDP数据包的宿地址结构--(适用于LINUX和BSD系统)

/*<br /> * recvfromto Like recvfrom, but also stores the destination<br /> * IP address. Useful on multihomed hosts.<br /> *<br /> * Should work on Linux and BSD.<br /> *<br /> * Copyright (C) 2002 Miquel van Smoorenburg.<br /> *<br /> * This program i

2011-03-09 15:33:00 2762

原创 I/O操作上设置超时之alarm闹钟法

<br />环境是linux ubuntu系统<br />调用 alarm,它在指定超时期满时产生SIGALRM信号。这个方法涉及信号处理。<br />用法:<br />   alarm(time):TIME就是指定的超时期;如果之前设有超时期,alarm()会返回其时期的剩余值;<br />   signal(SIGALARM, connect_alarm):指定connect_alarm函数是时钟期满时的处理函数;<br />函数退出前要关闭时钟:<br />   Sigfunc   *sigfunc;

2011-03-01 16:36:00 3701

原创 关于UNIXDOMAIN协议的接收发送者验证

<br />在Linux上, <br />1) receiver 要 setsockopt SO_PASSCRED <br />2) sender 要显式的调用 sendmsg [cmsg_type SCM_CRENDENTIALS, cmsg_data 为 ucred 并由 sender 填充 (kernel会作检验,如果pid/uid/gid不正确, 则会报错 "Operation not permitted" )] <br />3) receiver 用 recvmsg 接收。 <br /><br /

2011-03-01 13:23:00 3568

转载 ubuntu9.10 tftp服务设置(这个绝对好使)

<br />通过google参考了一些网友的tftp设置方法,下面的设置步骤通过我的验证是可以同过的。<br />1.安装程序<br />通过软件管理安装 tftp tftpd,前者是客户端,后者是服务程序。系统根据依赖会选上openbsd-inetd.<br />sudo apt-get install tftp tftpd<br />2.在/home目录下建一个tftpboot, 把属性改成777。<br />cd /home<br />sudo mkdir tftpboot<br />sudo chm

2011-02-22 18:39:00 2196

转载 Ubuntu安装后的一些配置

<br />Ubuntu安装后的一些配置<br />ubuntu安装后root用户是禁用的,首先使用以下命令<br />sudo passwd root  启用 root 帐号 (也就是 设置一个口令) 使用<br />当你使用完毕后屏蔽 root 帐号 使用sudo passwd root命令<br />也可以直接使用sudo -s -H命令切换到root下,<br />一、安装VMware Tools<br />首先说明一下我的版本,vmware station6.03 ubuntu8.04,<br /

2011-02-22 15:29:00 3059

转载 syslog(),openlog(),closelog()

<br />这里面的三个函数openlog, syslog, closelog是一套系统日志写入接口。另外那个vsyslog和syslog功能一样,只是参数格式不同。<br />    通常,syslog守护进程读取三种格式的记录消息。此守护进程在启动时读一个配置文件。一般来说,其文件名为/etc/syslog.conf,该文件决定了不同种类的消息应送向何处。例如,紧急消息可被送向系统管理员(若已登录),并在控制台上显示,而警告消息则可记录到一个文件中。该机制提供了syslog函数,其调用格式如下 <br

2011-02-21 16:00:00 2050

转载 用syslog记录UNIX日志

<br />一, 记录UNIX类主机的log信息:<br />首先需要对Freebsd的syslog进行配置,使它允许接收来自其他服务器的log信息。<br />在/etc/rc.conf中加入:<br />syslogd_flags="-4 -a 0/0:*"<br />说明:freebsd的syslogd参数设置放在/etc/rc.conf文件的syslogd_flags变量中<br />Freebsd对syslogd的默认设置参数是syslogd_flags="-s",(可以在/etc/default

2011-02-21 15:41:00 4492

转载 IPv6和IPv4之间的通信机制和方法

在前面两个部分(《IPv6技术之发展现状和技术原理》《IPv6技术之移动连接特性简述》)中主要讲解了IPv6自身的一些原理和特点,但是由于现存的网络体系多为IPv4结构,因此,在今后较长的一段时间里都将是两者相互并存,这就势必造成两者之间相互通信的问题,幸好,IPv6的设计者们已经为这个问题准备好了解决方法。 一、背景现状 尽管IPv6已被认为是下一代互联网络协议核心标准之一。但是,新生事物从诞生到广泛应用需要一个过程,尤其是对于现时IPv4仍然很好的支撑着的Internet。在IPv6的网络流行于全球之前

2011-02-17 12:38:00 8378

转载 gethostbyname和gethostbyaddr的用法

<br />ubuntu 主机名<br />使用下面的命令来查看当前主机的主机名称:<br />sudo /bin/hostname<br />或者:<br />hostname<br />使用下面的命令来设置当前主机的主机名称:<br />sudo /bin/hostname newname<br />要永久重设主机名则需手工修改/etc/hostname文件。<br /> 刚刚在做域名解析那,对这稍微有所了解,把刚刚的一点心得整理了下,共享之。<br /><br />先看下这个函数:gethostbyn

2011-02-16 12:46:00 3885 1

转载 tcpdump抓包分析详解

說實在的,對於 tcpdump 這個軟體來說,你甚至可以說這個軟體其實就是個駭客軟體, 因為他不但可以分析封包的流向,連封包的內容也可以進行『監聽』, 如果你使用的傳輸資料是明碼的話,不得了,在 router 上面就可能被人家監聽走了! 很可怕吶!所以,我們也要來瞭解一下這個軟體啊!(註:這個 tcpdump 必須使用 root 的身份執行)[root@linux ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae]

2011-01-14 16:50:00 2723

转载 堆和栈的区别(转过无数次的文章)

<br />一、预备知识—程序的内存分配  <br />  一个由C/C++编译的程序占用的内存分为以下几个部分  <br />  1、栈区(stack)—   由编译器自动分配释放   ,存放函数的参数值,局部变量的值等。其  <br />  操作方式类似于数据结构中的栈。  <br />  2、堆区(heap)   —   一般由程序员分配释放,   若程序员不释放,程序结束时可能由OS回  <br />  收   。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。  <br />  3、

2011-01-13 12:38:00 2026 1

转载 sscanf 用法详解

<br />sscanf<br />  名称:<br />  sscanf() - 从一个字符串中读进与指定格式相符的数据. <br />  函数原型:<br />  Int sscanf( string str, string fmt, mixed var1, mixed var2 ... );<br />  int scanf( const char *format [,argument]... ); <br />  说明:<br />  sscanf与scanf类似,都是用于输入的,只是后者以屏幕(s

2011-01-12 10:43:00 2093

原创 exec函数族

<br />1.10.1 简介<br />说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是:#include <unistd.h>int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg, .

2011-01-08 12:28:00 918 1

转载 LINUX 环境变量总结

<br />我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题。什么是环境变量?如何定制环境变量?我将在下面做一些介绍。<br />一、什么是环境变量?<br />Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。<br />二、定制环境变量 <br />环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。环境变量又可以被所有当

2011-01-06 21:16:00 890

转载 va_start()va_end()和vsnprintf()函数应用

<br />va_start()va_end()函数应用:<br />man:<br />       #include <stdarg.h><br />       void va_start(va_list ap, last);<br />       type va_arg(va_list ap, type);<br />       void va_end(va_list ap);<br />       void va_copy(va_list dest, va_list src);<br />1

2011-01-06 17:20:00 11600

转载 linux下错误的捕获:errno和strerror的使用

<br />经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。<br />    在程序代码中包含 #include <errno.h>,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需要读errno这个全局变量就可以获得失败原因了。<br />    例如:<br />#includ

2011-01-06 17:18:00 1479

转载 使用宏模拟htonl、ntohl、htons、ntohs的实现

<br />typedef unsigned short int uint16;<br />typedef unsigned long int uint32;<br /><br />// 短整型大小端互换<br />#define BigLittleSwap16(A)        ((((uint16)(A) & 0xff00) >> 8) | /<br />                                                   (((uint16)(A) & 0x00ff)

2011-01-03 16:23:00 4599

原创 fork、exec

<br />对于fork():<br />1、子进程复制父进程的所有进程内存到其内存地址空间中。父、子进程的<br />“数据段”,“堆栈段”和“代码段”完全相同,即子进程中的每一个字节都 <br />  和父进程一样。<br />2、子进程的当前工作目录、umask掩码值和父进程相同,fork()之前父进程<br />  打开的文件描述符,在子进程中同样打开,并且都指向相同的文件表项。<br />3、子进程拥有自己的进程ID。<br /><br /> 一个程序一调用fork函数,系统就为一个新的进程准备了

2010-12-24 16:23:00 840

转载 设计由Inetd启动的服务程序

<br />我们有一台SUN服务器,因为工作需要,要求服务器上运行按自己需求实现的网络服务程序,但又不希望服务程序一直运行着,占用太多的系统资源。为了设计这个服务程序,我们试用了几种方法,最后发现利用UNIX提供的inetd的守护进程设计服务程序,程序最简单,占用资源最少,运行最可靠。当然,在设计这种服务程序的时候,也需要一些小技巧。下面我们将给出一个简单的例子,把设计这种服务程序的方法介绍给大家。这种方法同样适用于在Linux系统中实现由inetd启动的服务程序。<br /> <br />一、Inetd的

2010-12-24 15:37:00 871

转载 setsockopt函数详解

<br />int setsockopt (<br />SOCKET s,                 <br />int level,                <br />int optname,              <br />const char FAR * optval, <br />int optlen                <br />);<br />The Windows Sockets setsockopt function sets a socket option.

2010-12-24 12:05:00 880

转载 linux 客户端 Socket 非阻塞connect编程

linux 客户端 Socket 非阻塞connect编程(正文)/*开发过程与源码解析<br />开发测试环境:虚拟机CentOS,windows网络调试助手<br />        非阻塞模式有3种用途<br />        1.三次握手同时做其他的处理。connect要花一个往返时间完成,从几毫秒的局域网到几百毫秒或几秒的广域网。这段时间可能有一些其他的处理要执行,比如数据准备,预处理等。<br />        2.用这种技术建立多个连接。这在web浏览器中很普遍.<br />       

2010-12-19 13:00:00 944

转载 怎样做一块好的PCB板

<br />大家都知道理做PCB板就是把设计好的原理图变成一块实实在在的PCB电路板,请别小看这一过程,有很多原理上行得通的东西在工程中却难以实现,或是别人能实现的东西另一些人却实现不了,因此说做一块PCB板不难,但要做好一块PCB板却不是一件容易的事情。<br />微电子领域的两大难点在于高频信号和微弱信号的处理,在这方面PCB制作水平就显得尤其重要,同样的原理设计,同样的元器件,不同的人制作出来的PCB就具有不同的结果,那么如何才能做出一块好的PCB板呢?根据我们以往的经验,想就以下几方面谈谈自己的看法

2010-11-16 00:00:00 1264

原创 can收发程序分析

<br />  对于发送程序,首先需要按照can协议,根据报文的格式,将can控制器的发送缓冲区填充完毕。然后再启动发送命令,具体的发送程序如下所示:<br />/*<br />***********************************************************************************************************<br />**函数原型  :   UINT32 CANSendData(eCANNUM CanNum,UINT32 C

2010-07-24 12:23:00 14363 5

原创 can收发问题

ARM_CAN232自收自发的问题设置好CMD=3(自发自收模式),然后调用CANAPP.C 文件中的InitCAN、CANSendData 函数、ReadCANRcvCyBuf 可以实现CAN自我测试吗,我仿造做了一个好像不行。还有,由于没有CAN接口卡,简单的讲开发板通过串口延长线与PC机的COM连接,然后更改发送数据格式,CMD=3,ARM_CAN232实例程序能实现自发自收吗,版主帮忙解释下,谢谢!回复 LPC2292 CAN自发自收问题 遇到同样的问题:设置好CMD=3(自发自收模式),然后调用C

2010-07-23 17:06:00 4416 1

转载 CAN的工作原理

 当CAN总线上的一个节点(站)发送数据时,它是以报文形式(编码过的通信数据块)广播给网络中所有节点的。而对每个节点来说,无论数据是否是发给自己的,都对其进行接收处理。  报文的组织形式如下:每组报文开头的11位或29位字符为标识符,定义了报文的优先级与其他重要信息;之后为数据段(比如8字节)以及其他校验码。这种报文格式称为“面向内容的编址方案”。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个节点(站)同时竞争总线读取时,这种配置十分重要。  具体工作形式如下:1)某一时刻,当一

2010-07-23 10:34:00 10303

原创 can总线初始化分析

<br />can总线的初始化,是can总线程序的基础,也是难点,因为初始化需要完成各个寄存器的设置,这就需要对can协议的扎实掌握和对can术语的深刻理解。<br />can总线的初始化主要包括模式寄存器的设置,中断方式的设置,波特率的设置,还有错误警告,发送优先级模式寄存器的设置等。can总线的初始化程序如下所示:<br />void InitCAN(eCANNUM CanNum)<br />{ <br /> HwEnCAN(CanNum); //硬件使螚can控制器,包括引脚初始化,外部。具体分析如下

2010-07-22 22:43:00 13299 2

转载 uc/os任务切换分析(基于swi软中断)

uc/os软件中断与硬件中断处理流程分析========================================================================================================软件中断===================================================================================SWI(software interrupt)软件中断,由用户定义的中断指令.可以用于用户

2010-07-12 13:10:00 2604

原创 lpc2000软中断分析

<br />周立功在startup.s文件中添加了一段支持软中断的代码,代码如下:<br />;软中断<br />SoftwareInterrupt   <br />;        B       SoftwareInterrupt<br />;//增加开/关中断处理 Chenxibing-2004-02-09                                 <br />        CMP     R0, #4//判断传过来的参数是否大于4<br />        LDRLO   P

2010-07-06 11:26:00 1813

转载 LPC2000系列学习笔记5--中断

1.1 中断源 LPC2000系列的向量中断控制器(VIC)支持32个中断请求输入,也即是支持32个中断源,见表5.1。这32个中断按顺序称为VIC通道0,VIC通道1,…,VIC通道31。 每一个VIC通道都支持软件中断与硬件中断,即每个中断均可由软件或硬件中断产生,软件中断与对应通道上的硬件中断是逻辑“或”的关系。软件中断可通过置位VICSoftInt寄存器相应位来产生,也可通过置位VICSoftIntClear寄存器相应位来清除。 表5.1 外

2010-07-06 10:25:00 2375

转载 struct 字节对齐详解

一.什么是字节对齐,为什么要对齐?    现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。    对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必

2010-07-05 11:13:00 683

转载 实战linux Bluetooth 编程

<br />实战Linux Bluetooth编程(一) 协议栈概述<br />Sam一年前在Linux下写了一个类似Windows下BTW的库--BTX。现在需要添加新功能时发现很多知识点都忘记<br />了。所以决定在这次学习中,把一些bluez API记录下来。这几天又想,这样还不够,不如把Linux下的<br />Bluetooth编程基础给记录下来吧。<br />前言:随着嵌入式系统的飞速发展,很多嵌入式平台上需要Bluetooth设备和应用。但在Linux下如何对<br />Bluetooth编

2010-06-12 11:46:00 4395

转载 alsa入门基本知识

Andrew Huangbluedrum@163.comalsa 是在LINUX出现比较晚的音频处理库,主要是针对原有的OSS的库进行改进.性能更好,支持多个播放源等.但相应的,增加的编程的复杂性.  旧的oss是采用标准文件IO接口,设备打开采用open,声音播录是采用数据IO接口(read/write),设备的参数采用ioctl来控制.都是系统调用因此无需额外库和配置文件来操作设备.但alsa也是最终采用open/read/write/ioctl,但操作结点更多.更复杂.因此在编程中是采用额外的库来操作

2010-06-08 15:33:00 4725 1

pcap编程专题pcap编程专题

pcap编程专题pcap编程专题pcap编程专题

2011-03-16

Linux那些事儿之我是U盘

Linux那些事儿之我是U盘-----Linux那些事儿之我是U盘

2011-03-15

Linux那些事儿之我是USB core

Linux USB core Linux那些事儿之我是USB core

2011-03-15

Linux那些事儿之我是UHCI

Linux那些事儿之我是UHCI----Linux UHCI USB 驱动

2011-03-15

Linux那些事儿之我是Sysfs

Linux那些事儿之我是Sysfs------Sysfs必看资料

2011-03-15

Linux那些事儿之我是Hub

Linux那些事儿之我是Hub-----想必大家都知道的好博文

2011-03-15

C++语言的设计与演化

C++语言的设计与演化,对于学习架构和提高编程水平,有很大的帮组,大家有空就下载来看看啦

2011-03-13

C++设计新思维-----好书

C++设计新思维,对于学习架构和提高编程水平,有很大的帮组,大家有空就下载来看看啦!

2011-03-13

C++精髓----好书。。。。

C++精髓,提高你对C++编程的思维,对于架构和提高代码效率的能力可以得到很大的培养

2011-03-13

LED光通讯国内外论文集

介绍当前LED通讯的基本原理,和发展趋势,本人宣传LED光通讯行业,为了我国的LED光通讯行业的快速发展

2011-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除