自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 switch 语句中省略号与 case 范围

这个是gcc对c语言中switch case的扩展,所以只能用gcc编译通过.2.7 switch 语句中的 case 范围在标准 C 中,switch 语句中的 case 标签只能有一个关联值。Sun C 允许使用某些编译器中使用的扩展(称为 case 范围)。case 范围指定要与单个 case 标签关联的值范围。case 范围语法为:case low ..

2012-10-30 15:05:10 16971 2

转载 linux下用户权限设置

Linux下有三类用户:1.超级用户: root  具有操作系统的一切权限, UID为02.普通用户:具有操作系统有限的权限  UID为500—60003.伪用户: 是为了方便系统管理,满足相应的系统进程文件属主的要求,不能登录系统,UID为1--499  Linux通过 /etc/passwd进行用户管理,执行命令打开该文件: vi   /etc/passwd在此

2012-10-29 13:27:30 738

转载 在linux下使用CMake构建应用程序

本文介绍了一个跨平台的自动化构建系统 CMake 在 linux 上的使用方法。 CMake 是一个比 automake 更加容易使用的工具,能够使程序员从复杂的编译连接过程中解脱出来。文中通过一些例子介绍使用 CMake 处理多源文件目录的方法、查找并使用其他开发包的方法以及生成 debug 版和 release 版程序的方法。CMake 简介    CMake 是一个跨平台的自动化

2012-10-29 13:26:28 491

转载 linux下samba搭建和网络驱动器

samba 搭建1. 安装samba 服务   sudo apt-get install samba2. 修改samba.conf文件   Vi /etc/samba/smb.conf       在最下面添加如下的代码:  [xxx]      browseable = yes  //浏览权限      writeable  = yes  //写权限

2012-10-25 22:55:04 1025

转载 tcp长连接 短连接等概念

之前对这几个概念有点糊涂,查阅了些资料,稍微概括下他们的区别吧。如有错误,请拍~~~先看图:TCP/IP是什么?   TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。   在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。   在传输层中有TCP协议与UDP协议。   在应用层有FTP、HTTP、TELN

2012-10-23 18:39:45 762

转载 观察者

前序小菜对大鸟说:“今天白天真的笑死人了,我们一同时在上班期间看股票行情,被老板当场看到,老板很生气,后果很严重呀。”“最近股市这么火,也应该可以理解的,你们老板说不定也炒股票。”“其实最近项目计划排的紧,是比较忙的。而最近的故事又特别火,所以很多人都在偷偷地通过网页看行情。老板市场会出门办事,于是打劫就可以轻松一些,看看行情,几个人聊聊买卖股票的心得什么的,但是一不小心,老板就会回来

2012-10-23 18:25:21 450

转载 c++回调函数

对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。   什么是回调函数?  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。  为什

2012-10-23 18:23:24 414

转载 c#委托和事件及观察者模式

委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Obse

2012-10-23 17:53:51 1047

转载 TCP三次握手及四次挥手详细图解

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助.    而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。 因此在这里详细解释一下

2012-10-23 10:19:45 1116

转载 linux time相关函数

日期时间篇asctimectimegettimeofdaygmtimelocaltimemktimesettimeofdaytimeasctime(将时间和日期以字符串格式表示) 相关函数 time,ctime,gmtime,localtime表头文件 #include定义函数 char * asctime(const struct tm * timep

2012-10-22 16:14:41 557

转载 TCP长连接短连接

1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模

2012-10-18 22:49:10 435

转载 fork复制后文件描述符映射关系

在C程序中,文件由文件指针或者文件描述符表示。ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf,fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面重点来说下,文件描述符是如何工作的。文件描述符相当于一个逻辑句柄,而open,close等函数则是将文件

2012-10-18 17:40:12 2210

转载 shell脚本基础语法

命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反)。例如测试两个数的大小关系:$ VAR=2$ test $VAR -gt 1$ echo $?0$ test $VAR -gt 3$ echo $?1$ [ $VAR -gt 3 ]

2012-10-18 16:47:29 527

原创 嵌入式操作系统基本功能

操作系统功能包括:任务管理(切换,调度等)内存管理(分区,分块避免内存碎片)进程间的通信(共享数据结构(必须实现共享数据结构的存取互斥机制)和消息机制)进程间的同步(信号量来管理)定时器管理(通过定时器来实现中断服务程序?有限等待计时与中断服务程序?)中断管理(通过中断实现任务间的调度?)关键字:信号量,定时器,中断

2012-10-18 11:48:40 1698

转载 unix读写原子操作

在多个函数操作时,由于不是原子操作,读写容易混乱,在Unix中提供了一种原子操作的方法:在打开文件的时候设置O_APPEND标识,这样内核每次进行读写之前都会将进程的偏移量设置到该文件的末尾处,于是每次读写之前不需要调用lseek()了。 具体参见pread AND pwrite 原子操作:指的是由多步组成的操作,如果该操作原子的执行,则要么执行完所有的操作

2012-10-18 11:42:23 1240

转载 pthread_cond_t须用pthread_mutex_t保护

为什么线程同步的时候pthread_cond_t要和pthread_mutex_t同时使用pthread_mutex_t count_lock;pthread_cond_t count_nonzero;unsigned count = 0;decrement_count () {    pthread_mutex_lock (&count_lock);    w

2012-10-17 18:13:32 668

转载 惊群现象

“据说”惊群问题已经是一个很古老的问题了,并且在大多数系统中已经得到有效解决,但对我来说,仍旧是一个比较新的概念,因此有必要记录一下。什么是惊群        举一个很简单的例子,当你往一群鸽子中间扔一块食物,虽然最终只有一个鸽子抢到食物,但所有鸽子都会被惊动来争夺,没有抢到食物的鸽子只好回去继续睡觉, 等待下一块食物到来。这样,每扔一块食物,都会惊动所有的鸽子,即为惊群。对于操作

2012-10-17 16:09:30 564

转载 多线程同步

线程同步(要素:排队,共享,变量,代码可同可不同) (非进程与共享) 我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程

2012-10-17 14:06:17 457

转载 RO,RW和ZI及ARM程序

要了解RO,RW和ZI需要首先了解以下知识:      (1)       ARM程序的组成            此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。           一个ARM程序包含3部分:RO,RW和ZI           RO是程序中的指令和常量

2012-10-17 13:56:32 608

转载 多线程多进程区别之一

按业务逻辑划分进程数,业务逻辑内由于数据耦合度高,使用多进程会导致频繁的IPC操作,另外进程的开销比线程开销要大很多,因此大多使用多线程。实际上,两者都是处理并发的手段什么是多线程: 多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的。 使用线程的好处有以下几点: ·使用线程可以

2012-10-17 13:52:31 489

转载 进程的虚拟地址空间,堆栈、堆、数据段、代码段

上图是进程的虚拟地址空间示意图。堆栈段:  1. 为函数内部的局部变量提供存储空间。  2. 进行函数调用时,存储“过程活动记录”。  3. 用作暂时存储区。如计算一个很长的算术表达式时,可以将部分计算结果压入堆栈。数据段(静态存储区):  包括BSS段和数据段,BSS段存储未初始化的全局变量、静态变量。数据段存储经过初始化的全局和静态变量。

2012-10-17 11:11:17 764

转载 TCP/IP协议族

物理层(RS-232、V.35)和 数据链路层(HDLC、X.25)涉及到在通信信道上传输的原始比特流,它实现传输数据所需要的机械、电气、功能性及过程等手段,提供检错、纠错、同步等措施,使之对网络层显现一条无错线路;并且进行流量调控。Bits、Frames网络层检查网络拓扑,以决定传输报文的最佳路由,执行数据转发。其关键问题是确定数据包从源端到目的端如何选择路由。网络层的主要协议有IP、ICM

2012-10-16 19:55:28 20539 2

转载 TCP协议解码详解

TCP协议解码详解一、    TCP协议简介       TCP,全称Transfer Control Protocol,中文名为传输控制协议,它工作在OSI的传输层,提供面向连接的可靠传输服务。       TCP的工作主要是建立连接,然后从应用层程序中接收数据并进行传输。TCP采用虚电路连接方式进行工作,在发送数据前它需要在发送方和接收方建立一个连接,数据在发送出去后,发送

2012-10-16 19:39:48 5481 2

转载 TCP/IP协议栈的基本工作原理

TCP/IP是互联网的核心协议,也是大多数网络应用的核心协议。就前面一段时间面试中问到的TCP/IP问题,这里给出一个简单的小结。 TCP由RFC793、RFC1122、RFC1323、RFC2001、RFC2018以及RFC2581定义。 (1) TCP概述a. TCP提供的是面向连接的全双工服务。TCP所有的数据会匹配到由源地址,目的地址,源端口

2012-10-16 19:07:40 919

转载 Linux进程调度时机

5.3.2 Linux进程调度时机调度程序虽然特别重要,但它不过是一个存在于内核空间中的函数而已,并不神秘。Linux的调度程序是一个叫Schedule()的函数,这个函数被调用的频率很高,由它来决定是否要进行进程的切换,如果要切换的话,切换到哪个进程等等。我们先来看在什么情况下要执行调度程序,我们把这种情况叫做调度时机。Linux调度时机主要有:1、进程状态转换的时刻:进程终止、进程

2012-10-16 17:53:59 571

转载 如何分配内存 内存碎片处理技术

内存碎片是一个很棘手的问题。如何分配内存决定着内存碎片是否会、何时会、如何会成为一个问题。  即使在系统中事实上仍然有许多空闲内存时,内存碎片还会最终导致出现内存用完的情况。一个不断产生内存碎片的系统,不管产生的内存碎片多么小,只要时间足够长,就会将内存用完。这种情况在许多嵌入式系统中,特别是在高可用性系统中是不可接受的。有些软件环境,如 OSE 实时操作系统已经备有避免内存碎片的良好工具

2012-10-16 11:43:55 1478

转载 网络编程简单示例

本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程经验和TCP/IP方面的基本知识。要实习本文的示例,需要Linux下的gcc编译平台支持。  Socket定义   网络的Socket数据传输是一种特殊的I/O,Socket也

2012-10-16 11:08:00 500

转载 大端小端

自第一台计算机诞生,其最小存储单元就被永久的定格了——一个由8个比特(bit)组成的称为字节(byte)的单位。计算机的所有内存以字节数组的方式进行编址。当一个逻辑上长于一个字节的整形数据放置在内存中时(比如16位,32位,和64位的整数),计算机设计者需要考虑这些字节的存储顺序。一些体系结构的设计者选择了将字节的逻辑顺序与物理顺序一致,即将逻辑上较低的字节放置在物理上较低的字节上;另外一

2012-10-16 11:05:21 391

空空如也

空空如也

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

TA关注的人

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