自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Linux信号处理与时钟

linux下进程间通信的几种主要手段简介:管道(Pipe)及有名管道(named pipe):无名管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早

2012-07-14 21:39:17 1653

转载 2-3树实现分析

在2-3树中,每个内部节点(非叶子节点)有两个或三个孩子,而且所有叶子都在同一级别上。例如,图1显示高度为3的2-3树。包含两个孩子的节点称为2-节点,二叉树中的节点都是2-节点;包含三个孩子的节点称为3-节点。图1:高度为3的2-3树2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。若某棵2-3树不包含3-节点,则看上去像满二叉树,其所有内部节点都可有两个孩子,

2012-07-14 10:35:31 1104

转载 红黑树

之前看了很多写红黑树的博客,但是感觉都讲的不太清楚!没说这样操作如何使他保持平衡的,于是疑惑重重,就看不下去了,一次不经意看到一个人说维基百科的红黑树讲的好,我就随便点了一下一看——这下疯了~,怎么讲的这么好!可以说是把一个复杂的问题,讲得简单化!这太幸福了! 于是我就慢慢学会了!强烈推荐维基的这个讲解,再也找不到比这还好的讲解了!不知道它上边其它的怎么样,反正这个很好!!既然学会了,走过来了,我

2012-07-13 18:19:29 5158

转载 平衡二叉树(解惑)

平衡二叉树定义(AVL):它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1很显然,平衡二叉树是在二叉排序树(BST)上引入的,就是为了解决二叉排序树的不平衡性导致时间复杂度大大下降,那么AVL就保持住了(BST)的最好时间复杂度O(logn),

2012-07-13 18:15:41 1303

转载 关于链表追赶--链表中环的问题

关于环的问题,介绍几个个经典的题目:1.求链表倒数第k个结点 最经典,最常见的解法就是,设置两个指针p1,p2,一开始分别指向头结点,首先p2先移动k个节点,之后开始p1,p2每次移动1个节点,直到p2达到最后一个节点位置,那么p1指向的就是倒数第k个节点。 不过这种解法主要是针对单链表,且链表中不存在环的,如果是双向链表,或者是存在环的链表呢?

2012-07-13 09:01:45 932

转载 linux 内核的链表操作(好文不得不转)

以下全部来自于http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html 无任何个人意见。本文详细分析了 2.6.x 内核中链表结构的实现,并通过实例对每个链表操作接口进行了详尽的讲解。一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的

2012-07-11 20:49:28 951

转载 链表经典问题汇总

收集了一下链表常见的面试题:1、如何判断一个单链表有环2、如何判断一个环的入口点在哪里3、如何知道环的长度4、如何知道两个单链表(无环)是否相交5、如果两个单链表(无环)相交,如何知道它们相交的第一个节点是什么6、如何知道两个单链表(有环)是否相交7、如果两个单链表(有环)相交,如何知道它们相交的第一个节点是什么1、采用快慢步长法。令两个指针p和q分别指向头

2012-07-11 20:35:23 658

转载 关于Nand Flash和Nor Flash的XIP

【转】XIP - eXecute In Place,中文常译为,就地执行。指代码可以在当前(存储器中)执行关于Nor Flash的XIP :NAND and NOR and XIP"NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有

2012-05-21 06:59:52 792

转载 12 个有效的提高编程技能的方法

1. 永远不要停止学习和阅读阅读 书籍,而不只是网站阅读 只为自我提升,而不是为了下一个项目阅读 提升你的基础,而不只是最新技术2. 跟比你聪明的人一起工作跟比你更聪明的人或者是更有经验的人一起工作,可以让你快速提升3. 变成一个全才不要过于钻牛角尖,这可能会让你停滞不前和伤害你的就业前景。4. 阅读并记录别人的代码其实写代码比阅读并

2012-05-16 23:34:07 738 1

转载 从编译器角度分析C语言中数组名和指针的区别

数组名和指针是两个往往很容易让人们混淆的概念,很多人以为数组名就是一个指针,也有很多人知道数组名不同于指针但是仅知道数组名的值不能像指针一样改变,例如你可以写出下面这样的代码:int *p;p++;却不能写这样的代码:int a[];a++;那么数组名跟指针之间到底有什么区别呢?第一,在声明上,除了作为函数

2012-05-16 23:11:23 3009 1

转载 总线错误&段错误

前段买了本《C专家编程》确实不错,特别是对内存思考这一章节,(O(∩_∩)O~目前我也只看到这一章节),其中讲到了总线错误和段错误:bus error(core dumped) 总线错误(信息已经转储)segmetation fault(core dumped)段错误(信息已经转储)这种错误相信只要你在unix用c,c++这两种错误是常见又是很头疼的错误,目前我也遇到段错误的程序,至今

2012-05-16 22:56:11 875

转载 fcntl函数(作用就是改变文件描述符的属性struct file)

该函数可以改变已打开的文件的性质。     #include fcntl.h>     int fcntl(int fields, int cmd, /* int arg */); //若成功则依赖于cmd,若出错则返回-1       第三个参数总是一个整数,与上面所示函数原型中的注释部分相对应。但是在作为记录锁用时,第三个参数则是指向一个结构的指针。   fcntl

2012-05-14 00:20:01 1266

转载 Unix下五种IO模型

1. I/O模型 Unix下共有五种I/O模型 a. 阻塞I/O b. 非阻塞I/O c. I/O复用(select和poll) d. 信号驱动I/O(SIGIO) e. 异步I/O(Posix.1的aio_系列函数) 1). 阻塞I/O模型 应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待。。。。 数据准备好了,从

2012-05-14 00:05:54 1023

转载 网络IO模型

最基本的网络IO1 文件描述符-socket(int domain, int type, int protocol);-bind(int sockfd, struct sockaddr *my_addr, int addrlen); 2 服务端-listen(int sockfd, int backlog); -accept(int sockfd, void *addr,

2012-05-14 00:01:42 1429

原创 C语言结构体存储 内存对齐问题

1)内存对齐产生的原因内存空间是按照字节来划分的,从理论上对内存空间的访问可以从任何地址开始。但是在实际上不同架构的CPU为了提高访问内存的速度,就规定了对于某些类型的数据只能从特定的起始位置开始访问。这样就决定了各种数据类型只能按照相应的规则在内存空间中存放,而不能一个接一个的顺序排列,浪费了小部分存储空间。2)对齐原则一个变量占用 n个字节,则该变量的起始地址必须能够被

2012-05-11 18:30:46 1745

转载 C语言**位运算**终极剖析

C语言有时候被称为中级语言 ,即介于低级与高级之家的编程语言,原因是C语言不仅具有高级语言抽象机制,也具有低级语言直接操作变量个别位的能力,即我们即将要讨论的C语言强大的位 操作运算。C语言的这种能力也许会让你感到奇怪,但这种能力有时确实是必须的,或者至少是有用的,例如我们通常向硬件设备发送一两个字节来控制该设备,其 中的每一位都有特定的含义。许多压缩和加密操作都对单独的位进行操作。高级语言一般不

2012-05-10 22:58:01 877

转载 vsprintf.c源代码

研究可变参数的时候,在网上搜到这篇源代码,放进博客慢慢学习^_^// vsprintf.c  //  // Print formatting routines  //  // Copyright (C) 2002 Michael Ringgaard. All rights reserved.  //  // Redistribution and use in source and bi

2012-05-09 00:51:46 6193

转载 C 中 extern 和 static

C 中 extern 和 staticC语言中:extern :extern(外部引用)可以置于变量或者函数前,以标示变量或函数的定义在别的文件中,在一个文件中用到的extern这些变量或函数是外来的,不是本文件定义的,提示编译器遇到此变量和函数时在其他模块中寻找其定义。注意,只有其他文件中的全局变量才能被其他文件所extern。extern int val;

2012-05-04 00:05:21 816 2

转载 c语言-struct的相关问题

导读:   1. struct的巨大作用   面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。

2012-05-04 00:03:20 554

转载 深入理解C语言

导读:Dennis Ritchie过世了,他发明了C语言,一个影响深远并彻底改变世界的计算机语言。一门经历40多年的到今天还长盛不训的语言,今天很多语言都受到C的影响,C++,Java,C#,Perl,PHP,Javascript等等。但是,你对C了解吗?相信你看过本站的《C语言的谜题》还有《谁说C语言很简单?》。这里,我再写一篇关于深入理解C语言的文章,一方面是缅怀Dennis,另一方面是告诉大

2012-05-03 23:50:55 430

转载 别把自己当个超人——给初级程序员的一点小小建议

英文原文:Unlearn, young programmer有一天我和我的朋友Simone一起喝咖啡,期间我们聊起一些工作上的事情。我们俩都管理着一些员工,为了说明给初级职员分派任务时出现的问题,她打了一个绝妙的比方。这就像你让他们挂一幅画,但他们从来没有干过这样的活。你明白你要做什么——只要让他们这么做就行了。事实上,你认为有些东西不用解释,因为你觉得它们太简单了

2012-04-30 21:19:48 864 1

转载 C语言函数名与函数指针

一、通常的函数调用一个通常的函数调用的例子:/* 自行包含头文件 */void MyFun(int x); /* 此处的声明也可写成:void MyFun(int) */int main(int argc, char* argv[]){   MyFun(10); /* 这里是调用MyFun(10) 函数 */   return(0);}void MyFun(in

2012-04-25 22:59:35 833 2

转载 C语言指针与数组名

一、通过数组名访问数组元素看下面代码:int i, a[] = {3,4,5,6,7,3,7,4,4,6};for (i = 0; i {   printf("%d\n", a[i]);}很显然,它是显示a 数组的各元素值。我们还可以这样访问元素,如下:int i, a[] = {3,4,5,6,7,3,7,4,4,6};for (i = 0; i {

2012-04-25 22:57:47 506

转载 const int *pi与int *const pi的区别

一、从const int i 说起你知道我们声明一个变量时象这样int i ;这个i是可能在它处重新变赋值的。如下:   int i = 0;   /* . . . */   i = 20; /*这里重新赋值了*/不过有一天我的程序可能需要这样一个变量(暂且称它变量),在声明时就赋一个初始值。之后我的程序在其它任何处都不会再去重新对它赋值。那我又应该怎么办呢?用const 。

2012-04-25 22:56:00 2264

转载 C语言函数参数的传递

一、三道考题开讲之前,我先请你做三道题目。(嘿嘿,得先把你的头脑搞昏才行……唉呀,谁扔我鸡蛋?)考题一,程序代码如下:void Exchg1(int x, int y){   int tmp;   tmp = x;   x = y;   y = tmp;   printf("x = %d, y = %d\n", x, y);}main(){

2012-04-25 22:54:50 6355 12

转载 c语言程序的存储区域与const关键字的使用方法

一.C语言程序的存储区域1.由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,连接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。2.C语言编写的程序经过编译-连接后,将形成一个统一文件,它由几个部分组成。在程序运行时又会产生其他几个部分,各个部分代表了不同的

2012-04-25 22:34:08 662 5

转载 七 Linux 进程管理

Linux 进程管理/r/n作者:北南南北来自:LinuxSir.Org摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。/r/n目录/r/n 1.1 进程分类;1.2 进程的

2012-04-22 00:24:28 501

转载 七 linux进程学习

感觉关于linux系统基础方面的知识越来越模糊。好些东西知道大概是怎么回事。但是要说就说不清楚了。现在再整理一下。一、进程标识1)        什么是进程ID每个进程都会有一个唯一非负整数的ID,就称为进程ID,因为其具有唯一性,常用来做其它标识符的部分以保证唯一性。2)        特殊的进程IDl         0  调度进程ID,也称为交换进程,它是内核的一部分。也

2012-04-22 00:21:31 370

转载 第七篇 Linux进程技术概述

Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。进程是Linux系统中一个重要的概念,Linux系统中一个重要特点就是可以同时启动多个进程。根据操作系统的定义:进程是系统资源管理的最小单位。现在,多进程技术已经被许多操作系统所支持,包括Windows/NT/2000和

2012-04-22 00:10:33 478

原创 机器数

补码表示法在计算机中,由于受设备位数的限制,所表示的机器数的位数是有限的。当位数为N时,只能表示2^N个不同的定点数,若超出范围,则产生溢出。此时,一般保留低N位,舍弃高位,因此,属于模运算,产生溢出是的量就是模。补码可以使计算机运算变得简单。计算机中广泛应用。计算机中将X对模M的补数称为X的补码。机器数的最高位为符号位,0表示正数,1表示负数,字长n+1位(数值为n位),真值X的补码

2012-04-21 23:52:10 2097

转载 机器码 与 汇编指令的关系

最近很多发帖求助机器码与汇编指令对应的问题,所以自己索性就把资料直接贴出来了,大家都可以看到,因为汇编教科书里面没有说到此点,大家想了解就细细琢磨一下把!一、状态寄存器PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:15 14 13 12 11 10 98 7 6 5 4 3 2 1 0

2012-04-21 23:50:13 8032

转载 I/O

6.2. 阻塞 I/O回顾第 3 章, 我们看到如何实现 read 和 write 方法. 在此, 但是, 我们跳过了一个重要的问题:一个驱动当它无法立刻满足请求应当如何响应? 一个对 read 的调用可能当没有数据时到来, 而以后会期待更多的数据. 或者一个进程可能试图写, 但是你的设备没有准备好接受数据, 因为你的输出缓冲满了. 调用进程往往不关心这种问题; 程序员只希望调用 read 或

2012-04-17 23:12:09 637

转载 内存管理内幕动态分配的选择、折衷和实现

Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media Worx简介: 本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内存, 以及如何使用垃圾收集自动管理内存。

2012-04-17 23:08:13 586

转载 #include<malloc.h>,<sys/types.h> ,<stdlib.h>,<string.h>及C语言头文件

C语言中#include 有何作用?何时要用?动态存储分配函数头文件,当对内存区进行操作时,调用相关函数.ANSI标准建议使用stdlib.h头文件,但许多C编译要求用malloc.h,使用时应查阅有关手册.我从网上拷了一个程序下来,发现里面有很多类似这样的包含语句:#include 斜杠前面的应该是文件夹吧?可是那个程序只有一个文件,并没有这样的文件夹。那些头

2012-04-15 01:30:53 8731

原创 IO-文件

仅作为笔记,额外的举例,不收录。来自仲的整理,一张一张图

2012-04-15 01:21:43 513

转载 C语言动态数组

C语言动态数组百科名片动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句(C语言中用malloc语句)重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。目录词目释义基础概念必看知识构建实例数组案例游戏应用展开词目释义  动态数组,是相对

2012-04-13 22:53:27 979

转载 函数返回类型为指针类型时的一些问题

1.先看程序:#includechar  *returnStr(){           char  *p = “tigerjibo”;           return  p;}int  main(){           char*str;           str =returnStr();

2012-04-12 21:43:08 416

转载 C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别

1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。2>静态局部变量具有局部作用域

2012-04-12 21:31:23 366

转载 C语言中volatile关键字的作用

一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的

2012-04-12 21:28:54 428

转载 基础知识sizeof用法

sizeof sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节。返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的头文件stddef.h的C++版本。他是一个和机器相关的unsigned类型,其大小足以保证内存中对象的大小。 1、什么是sizeof   首先看一下sizeof在msd

2012-04-12 21:25:46 456

邻接多重表创建图,Floyd算法求最短路径

邻接多重表创建图,Floyd算法求最短路径

2011-06-13

空空如也

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

TA关注的人

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