自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

C语言 条件编译详解

预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C 语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定...

2011-08-31 23:47:00 53

shell环境变量

shell环境变量环境变量还记得上一章里面﹐我曾经提到过﹕当我们登入系统的时候﹐首先就获得一 shell﹐而且它也占据一个行程(进程)﹐然后再输入的命令都属于这个 shell 的子程序(子进程)。如果您学习够细心﹐不难发现我们的 shell 都在 /etc/passwd 这个档里面设定的﹐也就是账号设定的最后一栏﹐预设是 /bin/bash 。事实上﹐当我们获得一个 shell 之后﹐我们才真...

2011-08-31 22:26:00 101

如何查看linux版本

1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version Linux version 2.6.9-22.ELsmp ([email protected]) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1 SMP Mon Sep 19 18:00:54 EDT 2...

2011-08-31 19:24:00 49

xauth: (stdin):1: bad display name "LSPPC-Lenny:1" in "add" command

启动vnc4server之后出现如下错误提示:LSPPC-Lenny:~# vnc4serverxauth: (stdin):1: bad display name "LSPPC-Lenny:1" in "add" command New ‘LSPPC-Lenny:1 (root)’ desktop is LSPPC-Lenny:1 Starting applications specifie...

2011-08-31 18:49:00 511

Centos5.6 VNC安装配置【无错版】

不严格按本步骤就会出现VNC桌面花屏,就是桌面分离为一层一层的。。。----------------------------------------先装X windowhttp://blog.csdn.net/21aspnet/article/details/6997549----------------------------------------Centos5.6 VNC安装配置...

2011-08-31 18:36:00 125

关于进程间通信的学习心得

进程:进程是指独立地址空间的指令序列进程的五种状态:新建,就绪,运行,睡眠,僵死进程间通信:是不同进程之间进行一些"接触",这种接触有简单,有复杂。机制不同,复杂度也不同。通信是一个广义上的意义,不仅指大批量数据传送,还包括控制信息的传送,但使用方法是基本相同的。基本的进程通信机制1.传统UNIX-IPC机制:信号和管道2.SystemV的IPC机制:共享内存、信号量和消息队列3.起...

2011-08-31 01:12:00 575

进程间通信学习小结(共享内存)

要使用共享内存,应该有如下步骤:1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrm共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以...

2011-08-31 01:09:00 171

Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid

perror:  #include<stdio.h>    #include<stdlib.h>定义函数  void perror(const char *s); perror ("open_port");函数说明  perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 错误 (stderr) 。参数 s 所指的字符串会先打印出...

2011-08-30 19:43:00 185

Linux环境编程--进程通信

实验内容编写程序实现进程的管道通信。用系统调用pipe( )建立一管道,二个子进程P1和P2分别向管道各写一句话: Child 1 is sending a message! Child 2 is sending a message!父进程从管道中读出二个来自子进程的信息并显示(要求先接收P1,后P2)。实验指导一、什么是管道UNIX系统在OS的发展上,最重要的贡献之一便是该系统首...

2011-08-30 18:55:00 59

Linux环境编程--多线程

本文作者: 姚继锋 (2001-08-11 09:05:00) 时隔多年 原文地址已经无从查。。。 居然是2001年就写了 今天看来对初学者还是很有参考意义 所以特转给大家本人在原文基础上适当修改1 引言  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(proces...

2011-08-30 18:42:00 53

C语言memset函数详解(Linux下和windows下的差异)

memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。 #include <stdio.h>#include <string.h>...

2011-08-30 16:12:00 281

C语言的sizeof和strlen

strlen是函数,而sizeof是算符。strlen需要进行一次函数调用,而对于sizeof而言,因为缓冲区已经用已知字符串进行了初始化,起长度是固定的,所以sizeof在编译时计算缓冲区的长度。因为sizeof()测试的是数组的长度。而strlen测试的是字符串的长度。在定义数组时,字符串后面还有一个结束标志'\0',这个也要算进去!#include <stdio.h>...

2011-08-30 16:05:00 126

#pragma pack(n) 的作用

在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。例如,下面的结构各成员空间分配情况:struct test { ...

2011-08-29 17:24:00 41

C语言字节对齐

文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。  一、概念       对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然对齐。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然对齐的。     二、为什么要字节对齐      需要字节对齐的根本原因在于CPU访问数据的效率问题。假设上面整型...

2011-08-29 16:06:00 45

淘宝李晓拴:淘宝网PHP电子商务应用

大家好,大家知道淘宝搜索是一个典型PHP架构。在座同学不知道有多少人使用过淘宝搜索可以举手示意一下?在开始这个话题之前我们先谈一下Polyglot,多语言混合编程,淘宝有很多系统是利用Java来开发的。淘宝大概有上千名Java工程师,也做了非常多Java工作,我们为什么还要选择PHP呢?一方面来讲我们利用一些外部动态,PHP开发效率更高一些,另外我们技术熟练程度。所以,也有应了那句话“没有最好,...

2011-08-29 12:21:00 99

百度PHP高级顾问惠新宸:PHP在百度的发展历程

惠新宸,百度PHP高级顾问,年二十有八,好追根究底,有不良嗜好, 幸性本善。乙酉年识互联网,丁亥年入雅虎,翌年入百度。虽性好安稳,然经变无数,唯常叹"人生,菠菜汤尔"。大家好,今天我主要介绍是PHP在百度一个发展历程,最早的时候百度成立于2000年,2000年的时候,百度刚刚成立,刚刚在北大资源宾馆建立百度,直到2001年的竞价排名,我不评价这个产品怎么样,竞价排名当时是第一个采用PHP,在百...

2011-08-29 11:49:00 144

大型网站框架的演变

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行...

2011-08-29 11:17:00 55

看闯关东原来知道古代已经十六进制了

闯关东第四集中夏掌柜说黄县口诀什么意思1625 2125 31875 425 53125 6375 74375 85 95625 1625 116875 1275 138125 14875 159375 161这个问题实际上是过去商品流通中的一种算法。过去的衡器十六两为一斤,也就是十六进制。为了计算方便,先人便选用了这种算账口诀。其原理是1÷16=0.0625,即算账口诀中的1625.其余类推...

2011-08-29 01:14:00 547

CentOS Linux内核升级全过程

首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。接下来,让我们一起开始精彩的Linux内核升级之旅吧!一、准备工作启动Linux系统,并用根用户登录,进入终端模式下。1、查看Linux内核版本# uname -a如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!~~~如果显示的是2.4.x,那恭喜你,闯关...

2011-08-27 13:15:00 55

Linux驱动程序编写

工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重要。Linux作为挑战微 软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨Linux技术和应用,促进Linux在中国的普 及。 Linux操作系统网络驱动程序编写 一.Linux系统设备驱动程序概述 1.1 Linux设备驱动程序分类 1.2 编写驱动程序的一...

2011-08-27 13:10:00 163

自动生成Makefile的全过程详解

automake/autoconf入门作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便。一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样...

2011-08-27 13:07:00 102

嵌入式Web服务器移植

第一步 Boa程序的移植1、下载Boa源码 下载地址: http://www.boa.org/, 或者http://sourceforge.net 最新发行版本: 0.94.13 下载 boa-0.94.13.tar.gz,注意:从boa上下载的是boa-0.94.13.tar.tar,解压方式一样 解压:# tar xzf boa-0.94.13.tar.gz2、生成Makef...

2011-08-27 13:04:00 71

Linux动态库(.so)搜索路径

众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库,并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函数,以及 该动态库的其它资源了。在Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下三种方法来指定...

2011-08-27 12:52:00 48

AT&T汇编语言与GCC内嵌汇编简介

AT&T汇编语言与GCC内嵌汇编简介1 AT&T 与INTEL的汇编语言语法的区别1.1大小写1.2操作数赋值方向1.3前缀1.4间接寻址语法1.5后缀1.6指令2 GCC内嵌汇编2.1简介2.2内嵌汇编举例2.3语法2.3.1汇编语句模板2.3.2输出部分2.3.3输入部分2.3.4限制字符2.3.5破坏描述部分2.4GCC如何编译内嵌汇编代码3后记本节先介绍AT&T汇...

2011-08-27 12:43:00 57

C语言宏定义使用技巧

写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等。下面列举一些成熟软件中常用得宏定义。。。。。。1,防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedefunsigned charb...

2011-08-27 12:40:00 49

typedef和define具体的详细区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define语句中的数字9 写成字母g 预处理也照样带入。 2)typedef是在编译时处理的。它在自己的作用...

2011-08-27 05:10:00 49

C语言的内联函数的作用

关内联函数键字inlinevoid myprintf(int a){ priintf("%d",a);}int main(){for(i=0;i<100;i++)myprintf(3);}对于这个函数,在进行反复的打印3的过程中我们是不是要反复的调用myprintf(int a)这个函数,进函数和出函数是需要时间的,假设这个过程用时为4ms,而执...

2011-08-27 03:19:00 375

使用VS2010调试技巧让C指针无处遁形

Linux 下调试远没有windows下的VS方便,不管是VC++6还是VS2003,2005,2008,2010所以我觉得不妨用VS调试程序,可以用VS来研究C语言似乎是一个比较不错的主意,当你的C已经很好的时候可以直接在Linux下去手写代码了。当然windows下写的C程序放到Linux下运行,也是可以的,不过需要知道的是有些语法Windows下支持但是Linux下是不支持。还有时会有...

2011-08-27 00:09:00 272

C语言实现的Web服务器

另一篇:标准C实现WEB服务器http://blog.sina.com.cn/s/blog_4b73e7600100b02c.html本文原文地址: http://blog.sina.com.cn/s/blog_4b73e760010007id.html自己研究了好几天终于写出来一个,哈哈,当然也从网上得到了很多的帮助拉。谢谢大家咯!这个版本还不是很完善,但Web服务器的基本框架已...

2011-08-23 00:28:00 83

Linux下Socket编程简单例子

#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <sys/types.h>#include <netinet/in.h>#include <sys/socket.h>#

2011-08-22 22:57:00 61

Linux下Socket编程

Linux下Socket编程 网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。 什么是Socket   Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来...

2011-08-22 20:26:00 42

memset函数详细说明

1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#include <stdio.h>#include <string.h>void main(){char s[]="hello";memset(s,'*',2);printf("%s",s);} ...

2011-08-22 11:50:00 52

三个轻量级WebServer--lighttpd,thttpd,shttpd介绍

国内绝大部分的web server不是IIS就是Apache,而论市场占有率,我认为Apache是大赢家了,至少是占据了半壁江山。但除了IIS/Apache外,其实我们有很多选择,对于高负载/大并发的网站而言,高性能、轻量级的web server是一剂良药。最近手头一台Server 的负载太高,居然将swap吃光导致机器非常缓慢,后来一查,原来是Apache耗掉了几乎所有资源,当时apache进程...

2011-08-22 01:40:00 254

Linux CPU数量判断命令

其实只要#include <unistd.h>long num = sysconf(_SC_NPROCESSORS_ONLN);便可以获得当前CPU的数量。。。判断依据:1.具有相同core id的cpu是同一个core的超线程。2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。英文版:1.Physical id and core id are ...

2011-08-22 01:12:00 47

一致性 hash 算法( consistent hashing )

原文地址:http://blog.csdn.net/sparkliang/article/details/5279393consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛; 1 基本场景比如你有 N 个 cache 服务器(后面简称 cache )...

2011-08-21 23:03:00 46

Linux Epoll介绍和程序实例

原文地址:http://blog.csdn.net/sparkliang/article/details/47706551. Epoll 是何方神圣? Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。 其实在 Linux 下设计并发网络...

2011-08-21 22:51:00 60

linux系统级别的能够打开的文件句柄的数file-max命令

简单的说, max-file表示系统级别的能够打开的文件句柄的数量, 而ulimit -n控制进程级别能够打开的文件句柄的数量.man 5 proc, 找到file-max的解释:file-max中指定了系统范围内所有进程可打开的文件句柄的数量限制(系统级别, kernel-level). (The value in file-max denotes the maximum number of f...

2011-08-21 22:47:00 151

libevent源码深度剖析

原文地址:http://blog.csdn.net/sparkliang/article/details/4957667libevent源码深度剖析一——序幕张亮1 前言Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更深层次的分析,写出来,也可供后来者参考。附...

2011-08-21 22:39:00 58

thttpd服务器

1 引言 随着微处理器技术、计算机网络技术的进步,基于嵌入式WEB的网络数字视频监控系统逐渐得到了人们的广泛关注。把图像采集、视频压缩和WEB功能集中到一个体积很小的设备内,可以直接连入局域网和Internet,达到即插即用,省掉多种复杂的电缆,安装方便,用户也无须安装任何硬件设备即可观看,这使得由嵌入式网络视频监控服务器组成的监控网络组网和扩展都极为灵活方便。2 WEB服务器所在系统工作原理...

2011-08-21 22:32:00 130

linux环境编程--IPC 之 msg queue

消息队列<wbr><wbr><wbr> 在UNIX的SystemV版本,AT&T引进了三种新形式的IPC功能(消息队列、信号量、以及共享内存)。但BSD版本的UNIX使用套接口作为主要的IPC形式。Linux系统同时支持这两个版本。<div><span style="font-family:Verdana;">&lt

2011-08-21 14:22:00 59

空空如也

空空如也

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

TA关注的人

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