自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 linux终端快捷键

ctrl + u 撤销终端输入的长串命令ctrl + w 删除终端命令行最后一个单词转载于:https://www.cnblogs.com/li-chong/p/3854101.html

2014-07-18 18:17:00 120

转载 wc命令

在Linux下用wc进行计数。返回文件的行数、字数、字节数等。需要注意的是:一行的末尾如果没有回车符,则不算是一行,也就是说,如果一个文件的最后一行末尾没有换行符,wc命令统计的行数会比实际行数少一,所谓实际行数是你所看 到的行数,实际上,没有回车符,确实不能算作一行(注:若是在一个已存在的文本中,则默认为所有的行都有一个不可见的回车符)转载于:https://www.cnblo...

2014-07-18 17:56:00 161

转载 巧用位运算

1、用一个表达式,判断一个数X是否是2的N次方(2,4,8,16.....),不可用循环语句。解析:X:2,4,8,16转化成二进制是10,100,1000,10000。如果减1则变成01,011,0111,01111。两者做按位与运算,结果如果为0,则X是2的N次方。答案:!(X&(X-1))2、统计一个整数的二进制中1的个数int CountNumberO...

2013-10-06 09:57:00 102

转载 IP地址分类

IP地址分类:A:首位为0;1.0.0.0~126.0.0.0;主机号24位B:前两位为10;128.1.0.0~191.255.0.0;主机号16位C:前三位为110;192.0.1.0~223.255.255.0;主机号8位D:前四位为1110;224.0.0.0~239.255.255.255 E:前四位为1111;240.0.0.0~255.255.255.254D类为多播地...

2013-10-05 20:51:00 109

转载 进程的状态转换

三态模型:在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化。进程一般有3种基本状态:运行、就绪和阻塞。(1)运行状态(ready):当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪状...

2013-10-05 17:24:00 537

转载 动态链接库与静态链接库

静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件,程序编译时会把lib文件的代码加入你的程序中因此会增加代码大小;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持,节省内存空间。。静态链接库与动态链接库都是共享代码的方...

2013-09-29 14:32:00 76

转载 僵尸进程

问:Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?  一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。  在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所...

2013-09-29 09:59:00 139

转载 计算机系统层次存储结构

问:当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率? 所谓存储系统的层次结构,就是把各种不同存储容量、存取速度和价格的存储器按层次结构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所存放的程序和数据按层次分布在各种存储器中。目前,在计算机系统中通常采用三级层次结构来构成...

2013-09-29 09:55:00 1472

转载 进程任务调度

基于时间片轮询调度:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。 当执行的时间片用完时,由一个记时器发出一个时钟中断请求,该进程被停止,并被送往就绪队列末尾;依次循环。基于优先级的抢占式调度:(1) 每个任务赋予唯一的一个优先级(有些操作系统可以动态地改变任务的优先级);(2) 假如有几个...

2013-09-29 09:44:00 115

转载 windows内存管理的机制以及优缺点

分页存储管理基本思想:用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。分段存储管理基本思想:将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。段页式存储管理基本思想:...

2013-09-29 09:00:00 158

转载 面向对象的三个基本元素,五个基本原则

三个基本元素:1. 封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。2. 继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特...

2013-09-29 08:43:00 55

转载 数据库以及线程发生死锁的原理及必要条件,如何避免死锁

产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。产生死锁的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。...

2013-09-29 08:36:00 154

转载 趣味面试题

1. 火车运煤问题你是山西的一个煤老板,你在矿区开采了有3000吨煤需要运送到市场上去卖,从你的矿区到市场有1000公里,你手里有一列烧煤的火车,这个火车最多只能装1000吨煤,且其能耗比较大——每一公里需要耗一吨煤。请问,作为一个懂编程的煤老板的你,你会怎么运送才能运最多的煤到集市?酷壳 – CoolShell.cn2. 赛马问题一共有25匹马,有一个赛场,赛场有5个...

2013-09-06 14:32:00 82

转载 约瑟夫环问题(Josephus)

约瑟夫环:用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至最后一个元素并输出该元素的值。一、循环链表:建立一个有N个元素的循环链表,然后从链表头开始遍历并记数,如果计数值为M,则输出并删除该元素,继续循环(其实是N-1次),当当前元素与下一元素相同时退出循环。#include <stdio.h>#include <stdlib.h&g...

2013-08-21 14:36:00 101

转载 判断链表是否相交

1. 判断两个均不含有环的单链表是否相交——编程之美3.6两个没有环的链表相交于一节点,则在这个节点之后的所有结点都是两个链表所共有的。如果它们相交,则最后一个结点一定是共有的,则只需要判断最后一个结点是否相同即可。时间复杂度为O(len1+len2)。struct Node{ int data; Node *next;};bool isCross...

2013-08-20 21:43:00 71

转载 单链表相关操作实现

1. 带头结点单链表基本操作1.1 头文件声明及结构体定义#include <stdio.h>#include <stdlib.h>typedef struct temp{ int data; struct temp *next;}Node;1.2 输入数据创建单链表,遇0结束Node *creat()...

2013-08-20 17:15:00 48

转载 C/C++一些库函数的实现

1. 写出String的具体实现类的定义:#include <iostream>#include <cstring>using namespace std;class String{ friend ostream & operator<<(ostream &, const String &);...

2013-08-19 19:53:00 81

转载 指针数组和数组指针

指针数组:首先它是一个数组,数组的元素都是指针。它是“储存指针的数组”的简称。int *p1[10];数组指针:首先它是一个指针,它指向一个数组。它是“指向数组的指针”的简称。 int (*p2)[10];这里需要明白一个符号之间的优先级问题,关键在于p1、p2先和谁结合。“[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为 p1,int *修饰的是...

2013-08-18 21:01:00 68

转载 union关键字及大小端模式

1. union关键字union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。例子如下:union StateMachine{  char character;  int number;  char *str;...

2013-08-18 13:01:00 126

转载 C/C++生成可执行文件过程

编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.asm、.s)-->汇编程序(.obj、.o、.a)-->链接程序(.exe等可执行文件)1. ...

2013-08-17 17:00:00 300

转载 C/C++ 答疑解问

1. sizeof(string)的大小string属于类,类的大小就是类中成员变量(非静态)加上指向虚函数表的指针以及指向虚基类表的指针加起来的和。因为string是一个模板类,受具体的实现来决定其sizeof。实际上,到了C++中,对类的sizeof往往没有意义。这涉及到编译器在实现类对象时采用的数据结构。VC6.0:sizeof(string) = 16;VS2010:si...

2013-08-16 10:32:00 139

转载 volatile限定符

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。volatile的本意是“易变的”,不过翻译成“直接存取原始内存地址”更为合...

2013-08-15 15:54:00 51

转载 C++中的继承与虚函数各种概念

虚继承与一般继承 虚继承和一般的继承不同,一般的继承,在目前大多数的C++编译器实现的对象模型中,派生类对象会直接包含基类对象的字段。而虚继承的情况,派生类对象不会直接包含基类对象的字段,而是通过一个间接的指针去存取基类对象中的字段。 虚函数的实现原理 当编译器对程序进行编译碰到虚函数时,将不会赋予一个地址,而是插入一段汇编代码。每个包含虚函数的类都会...

2013-08-14 20:53:00 79

转载 const与static类成员

const成员函数作用1. 不能修改类的成员变量,同时不能调用类的非const成员函数。(const成员函数中,this的类型是一个指向const类类型对象的const指针,const成员函数返回*this作为一个const引用)。2. 提供了基于const的重载。const对象只能使用const成员函数。非const对象可以使用任一成员,但非const版本是一个更好的匹配。cons...

2013-08-13 21:10:00 96

转载 _stdcall与_cdecl

_cdecl(C Declaration的缩写)是C/C++和MFC程序默认使用的调用约定,因此可以省略,也可以在函数声明时加上_cdecl关键字来手工指定。采用_cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定,如函数printf()。由于每一个使用_cdecl约定的函数都要包含清理堆栈的代码,所以产生...

2013-08-13 20:35:00 89

转载 ACID

ACID,是指数据库管理系统(DBMS)在写入/异动资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。在数据库系统中,一个事务是指:由一系列数据库操作组成的一个完整的逻辑过程。例如银行转帐,从原账户扣除金额,以及向目标账户添...

2013-08-12 20:20:00 73

转载 存储器管理

页面置换算法在进程运行过程中,若其所要访问的页面不在内存而需要把他们调入内存中,但内存已经无空闲空间时,为了保证该进程能够正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。通常,把选择换出的页面的算法成为页面置换算法。置换算法的好坏将直接影响到系统的性能。1. 最佳置换算法(OPT)一种理想化的算法,具有最好的性能,但实际上却难于实现。其所选择的被淘汰页面,将是以后永...

2013-08-11 17:24:00 75

转载 进程与线程

进程是程序的一次执行,线程可以理解为进程中的执行的一段程序片段。一个程序至少有一个进程,一个进程至少有一个线程。进程是操作系统资源分配的基本单位,而线程是操作系统执行的最小单位。地址空间和资源分配:进程有独立的地址空间,比如在linux下面启动一个新的进程,系统必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种非常昂贵的多任务工作方式。而运行一...

2013-08-11 15:55:00 84

转载 进程间通信 IPC(Inter-Process Communication)

进程互斥、同步和通信的关系进程的同步与互斥是指进程在推进时的相互制约关系。为了保证进程的正确运行以及相互合作的进程之间交换信息,需要进程之间的通信。进程通信是指进程间的信息交换。两者有类似,但是差别很大,共通之处是,信号量和消息(事件)。PV操作作为进程的同步与互斥工具因信息交换量少,效率太低,称为低级通信。而高级通信则以较高的效率传送大批数据。Linux进程间的通信机制如...

2013-08-11 12:22:00 106

转载 进程的同步与互斥

在操作系统中,进程是占有资源的最小单位。临界资源是指系统中一次只允许一个进程使用的资源(可以是硬件资源像打印机,也包括软件资源,如程序中的数据结构、表格和变量、文件等。)访问临界资源的那段代码称为临界区。进程同步:它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系。为进程之间的直接制约关系。比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程B因为...

2013-08-10 21:28:00 217

转载 基于TCP/UDP的socket编程

基于TCP(面向连接)的socket编程服务器端顺序: 1. 创建套接字(socket) 2. 将套接字绑定到一个本地地址和端口上(bind) 3. 将套接字设为监听模式,准备接收客户请求(listen) 4. 等待客户请求的到来;当请求带来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) 5. 用返回的套接字和客户端进行通信(send/recv) 6. 返回...

2013-08-10 15:11:00 90

转载 同步与异步(阻塞/非阻塞)

同步是阻塞模式,异步是非阻塞模式。同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。实绝大多数函数都是同步调用(例如sin,isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。如SendMessage:该函数将消息直接发送给某个窗口,并调用该窗口的窗...

2013-08-10 14:45:00 52

转载 万维网 WWW (World Wide Web)

万维网 WWW (World Wide Web)并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从因特网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。这种访问方式称为“链接”。浏览器就是在用户计算机上的万维网客户程序。万维网文档所驻留的计算机则运行服务器程序,因此这个计算机也称为万维网服务器。客户程序向服务器程序发出请求,...

2013-08-09 20:10:00 709

转载 TCP传输工作原理

引言在TCP/IP体系结构中,IP协议只管将数据包尽力传送到目的主机,无论数据传输正确与否,它都不做验证,不发确认,也不保证数据包的顺序,因而不具有可靠性。这一问题要由传输层TCP协议来解决,TCP协议为Internet提供了可靠的无差错的通信服务。一、OSI参考模型和TCP/IP参考模型OSI模型(open system interconnection reference ...

2013-08-09 15:43:00 155

转载 TCP三次握手/四次挥手

TCP(Transmission Control Protocol) 传输控制协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用“三次握手”建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=...

2013-08-09 11:15:00 53

空空如也

空空如也

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

TA关注的人

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