自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

转载 epoll精髓

epoll精髓在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#

2011-11-06 09:54:34 346

转载 海量数据处理常用思路和方法

大数据量的问题是很多面试笔试中经常出现的问题,比如 google、淘宝、百度、 腾讯 这样的一些涉及到海量数据的公司经常会问到。下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。1.Blo

2011-10-28 16:27:51 470

转载 mmap

#include #include int main(int argc, char** argv){  int fd;    fd=open(argv[1],O_CREAT|O_RDWR|O_TRUNC,0777);  lseek(fd,100,SEEK_SET);  write(fd,"",1);  close( fd );    return 0

2011-10-28 16:07:09 745

转载 EOF feof()

>> 关于文件结束符EOFEOF 是 End Of File 的缩写。在 C 语言中,它是在标准库中定义的一个宏。人们经常误认为 EOF 是从文件中读取的一个字符。其实,EOF 不是一个字符,它被定义为是int 类型的一个 说的标准. 正解.>> 关于文件结束符EOFEOF 是 End Of File 的缩写。在 C 语言中,它是在标准库中定

2011-10-28 09:37:59 3654

转载 sth about interview

1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)         #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清

2011-10-28 09:37:40 375

转载 Linux设备驱动程序学习(0)(ZZ)

Linux设备驱动程序学习(0)-Hello, world!模块 一个学习Linux设备驱动程序都会碰到的第一个例程:#includelinux/init.h>#include linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(voi

2011-10-28 09:36:39 536

原创 EOF 与 feof()

当读取文本文件到末尾  后 返回的是 -1     因为文本文件是ASCII形式的 所以 -1 不在其中 可以用来判断是否到末尾但对于2 进制文件 就无法用-1来判断是不是文件尾了  所以应该用  feof()但使用feof的时候有个注意的地方ch=getc(fin);while

2011-07-21 19:32:20 519

原创 一个动态内存管理模块的实现

摘要:介绍一个动态内存管理模块,可以有效地检测C程序中内存泄漏和写内存越界等错误,适用于具有标准C语言开发环境的各种平台。关键词:C语言 动态内存 内存泄漏 写越界引言当前,绝大多数嵌入式平台上的软件都采用C语言编写。除了代码简洁、运行高效之外,灵活操作内存的能力更是C语言的重要

2011-07-21 19:09:20 456

原创 内存区划分;内存分配;堆、栈概念分析

一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另

2011-07-21 18:54:39 491

原创 ZZ参数个数可变的宏定义

宏定义支持参数个数未知的情况,在打印调试信息时很管用。定义:#ifdef DEBUG#define print_dbg(...) printf(__VA_ARGS__)#else#define print_dbg(...) #endif使用:print_dbg(“Total is

2011-07-21 18:49:51 324

原创 蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,

2011-04-24 21:30:00 1737

原创 规范代码

indent -npro -kr -i4 -ts4 -sob -ss -bl -bli 0 -l80 XX.C使用这条语句规范写好的XX.C文件

2011-04-20 20:19:00 209

原创 综述写法(转)

 1 综述的定义和特点  综述是查阅了某一专题在一段时期内的相当数量的文献资料,经过分析研究,选取有关情报信息,进行归纳整理,作出综合性描述的文章.  综述的特点: ①综合性:综述要"纵横交错",既要以某一专题的发展为纵线,反映当前课题的进展;又要从本单位,省内,国内到国外,进行横的比较.只有如此,文章才会占有大量素材,经过综合分析,归纳整理,消化鉴别,使材料更精练,更明确,更

2011-04-15 19:21:00 481

原创 数独(转)

#include#include#include#include#define LS 4 //拉斯维加斯算法计算的数目int shudu[9][9]; //数独棋盘int shudutemp[9][9],shudutemp1[9][9],shudutemp2[9][9]; //保存数度棋盘,以便恢复原状int p,q; //记录回溯解数独的起始位置int isok=

2011-04-10 19:02:00 866

原创 `basename $0` 与$0区别

`basename $0`值显示当前脚本或命令的名字$0显示会包括当前脚本或命令的路径`basename $1`和$1相同

2011-04-09 11:49:00 25463

原创 数组名与指针典型面试题的分析(转)

这类题目,总的来说,实际上可以归纳为如下几点:1、 有一个一维数组int a1[10],定义一个指针,指向一维数组名。        2、 有一个一维数组int a2[10],定义一个指针,指向一维数组名的地址。        3、 有一个二维数组int a3[3][4],定义一个指针,指向二维数组名。        4、 有一个二维数组int a4[3][4],定义一个指针,指向

2011-04-06 18:45:00 552

原创 C语言中printf格式化输出函数(转载)

用 法:  int printf(const char *format,[argument]);  format 参数输出的格式,定义格式为:  %[flags][width][.perc] [F|N|h|l]type  规定数据输出方式,具体如下:  1.type 含义如下:  d 有符号10进制整数  i 有符号10进制整数  o 有符号8进制整数  u 无

2011-03-29 19:08:00 704

原创 int getchar(void);

getchar(由标准输入设备内读进一字符) 相关函数 fopen,fread,fscanf,getc

2011-03-28 20:40:00 1065

原创 段和页区别

1、页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。分页的作业地址空间是维一的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。 2、 分段的作业地址空间是二维的,程序员在标识一个地址时,既需

2011-03-28 18:20:00 12678

原创 编译2.6.38内核

说明:      1.操作系统:SUSE Linux 10 SP3      2.操作系统内核版本:linux-2.6.16.60      3.编译内核版本:linux-2.6.38内核下载地址:      linux-2.6.38 :http://www.kernel.org/pub/linux/kernel/v2.6/知识储备:关于内核文件和内核镜像文

2011-03-28 15:15:00 1574

原创 C 语言中 scanf()的用法探讨(转)

scanf()作为 C 语言中的基本输入,曾经带给我们初次编写 C 程序的快乐。但是随着C 的不断深入,我们却发现:原来最难理解的东西居然是我们自以为很熟悉的东西。       我们真正了解 scanf()吗?那么看看下面的几个例子吧。一、关于 scanf()中的格式控制符       scanf()的格式控制符有多个,但我只想讨论一下%[]这个格式控制符。%[]可以用来进行多

2011-03-23 15:29:00 574

原创 移位操作规则

移位操作数的两边必须都是整型数比整型更小的数据类型 数据被转换成整型进行运算,比其大的则不能移位规则:对于正数将高位补0,负数将高位补1 

2011-03-22 17:39:00 466

原创 #define和typedef(转载)

#define(宏定义)只是简单的字符串代换(原地扩展),它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了。typedef是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),它的新名字具有一定的封装性,以致于新命名的标识符具有更易定义变量的功能,它是语言编译过程的一部分,但它并不实际分配内存空间。一般都遵循#define定义“可读”的常量以及一些宏语句的任务

2011-03-22 13:52:00 270

原创 约瑟夫问题的数学方法

N个人围成一圈,顺序排号,从从第一个人开始报数,从1到3,凡报道3的退出圈子,问最后留下的第几号的那位?/*约瑟夫问题的数学方法无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号,而不是要读者模拟

2011-03-20 22:57:00 308

原创 a和&a的区别

int a[10]={1,2,};a是a[0]的地址,它认为它指向的东西是一个数组元素。&a是a的地址,它认为它指向的东西是一个整个数组。 

2011-03-20 15:13:00 603

原创 Linux中调试程序使用打印日志纠错

/**********************************************************Author: lizhangjie*Date: 2011-02-15*Description: Log Printging Functions*********************************************************/#

2011-03-19 18:17:00 606

原创 内存分配方式,堆区,栈区,new/delete/malloc/free

1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,

2011-03-14 15:59:00 318

原创 C89和C99标准比较(转载)

注: GCC支持C99, 通过 --std=c99 命令行参数开启,如:  代码:gcc --std=c99 test.c --------------------------------------------------------------------------------------------------    1、增加restrict指针  C99

2011-03-11 11:56:00 293

原创 LINUX内存管理

 转自:http://www.kerneltravel.net/journal/v/mem.htmLinux内存管理摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用

2011-03-11 11:45:00 394

原创 制作带busybox的U盘文件系统详细步骤

 1.     fdisk /dev/sdb2.     p//查看分区情况3.     d 1 d 2 d 3 d 4    //删除U盘原有的分区4.     p //查看分区情况5.     n e 1 用全部磁盘空间建立扩展分区,选择分区号为16.     n l 5用全部磁盘空间建立逻辑分区,选择分区号为57.     p //查看分区情况8.     w

2011-03-09 21:31:00 1639

原创 实模式、保护模式和虚拟8086方式

从80386开始,cpu有三种工作方式:实模式,保护模式和虚拟8086模式。只有在刚刚启动的时候是real-mode,等到linux操作系统运行起来以后就运行在保护模式。实模式只能访问地址在1M以下的内存称为常规内存,我们把地址在1M 以上的内存称为扩展内存。在保护模式下,全部32条地址线有效,可寻址高达4G字节的物理地址空间; 扩充的存储器分段管理机制和可选的存储器分页管理机制,不仅为存

2011-03-08 20:31:00 886

原创 VFS

什么是VFS?VFS(VirtualFileSystem)称“虚拟文件系统”,是LINUX文件系统的一个重要的组成部分。它不是一个真正的文件系统,实际上它是一种软件机制,也许称它为Linux的文件系统管理者更确切点。VFS的主要内容超级块(super_block)对具体文件系统的超级块是文件系统中最重要的数据结构,它用来描述整个文件系统信息(组织结构和管理信息)。不涉及文件系统

2011-03-08 18:43:00 1094

原创 gcc基本用法

 linux下c编程起步一:掌握gcc基本用法  初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi或其它编辑器编写。编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。一. 常用

2011-03-08 10:37:00 616

原创 内存管理内幕

简介: 本文将对 Linux程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存, 以及如何使用垃圾收集自动管理内存。为什么必须管理内存 内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使

2011-03-07 19:13:00 205

原创 段错误

1、什么是段错误?    所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和

2011-03-05 21:43:00 970

原创 解析 Linux 中的 VFS 文件系统机制

简介: 本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。本文侧重于通过具体的代码分析来解释 Linux 内核中 VFS 的内在

2011-03-05 19:14:00 304

原创 linux awk 完全手册

 1.什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk是三个人名的缩写,他们是:Aho、(Peter) Weinberg和(Brain)Ke

2011-03-05 16:30:00 237

原创 linux文件系统的启动分析

一、内核启动完之后,首先运行/linuxrc。/linuxrc内容:#!/bin/shecho "mount /etc as ramfs"/bin/mount -n -t ramfs ramfs /etc       /bin/cp -a /mnt/yaffs/etc/* /etc //关机的时候我们会保存/etc的内容到/mnt/yaffs/etc.echo "re-cr

2011-03-05 15:34:00 935

原创 通过Symantec PcAnywhere控制远程计算机-使用方法图解教程

 有时我们可能会碰到这样的情况:在公司临时需要家里电脑中的资料,但又不可能马上跑回家打开电脑拷贝吧。此时如果能在公司就能远程打开家中的电脑,并能进行远程访问控制,不就一切迎刃而解了吗!那么,又该如何实现这种远程控制呢?要实现这种远程控制,肯定需要软件帮忙,在这方面使用最普遍的莫过于PcAnywhere。不过大家也必须清楚,想通过PcAnyWhere控制远程计算机,必须知道被控端计算机IP地址,

2011-03-03 15:43:00 4737

原创 IP电话的VoIP技术原理

在现在的网络通信中,Email服务已经不是现在首选的通信方式了。更多的即时通信,语音服务等,在网络上面层出不穷。那么,现在我们就来说一说IP电话的VoIP技术原理。  基本传输过程  VoIP传统的电话网是以电路交换方式传输语音,所要求的传输宽带为64kbit/s。而所谓的VoIP是以IP分组交换网络为传输平台,对模拟的语音信号进行压缩、打包等一系列的特殊处理,使之可以采用无连接的UDP协

2011-03-03 09:25:00 871

opencv cookbook

opencv programming cook book

2013-01-08

空空如也

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

TA关注的人

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