- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 Linux磁盘与文件系统Ext2
1. 磁盘的组成磁盘可以分为扇区(sector)与柱面(Cylinder)两种单位,其中扇区的大小为512byte 磁盘的第一个扇区记录了两个重要的信息: 主引导分区(MBR)可以安装引导加载程序的地方,有446bytes 分区表:记录整块硬盘分区的状态,64bytes 分区表中只有64byte,所以最多只能容纳四个分区,这四个分区称为主分区或者扩展分区。 可以从扩展分区中分
2016-05-27 18:34:06
722
原创 排列与组合C++实现
字符串的排列问题描述 输入一个字符串,例如输入的字符串是ABC,则打印该字符串的全排列为ABC, ACB, BAC, BCA, CBA, CAB递归方式解决递归方式解决问题,一般是将大规模的问题转化为小规模问题,通过小规模的解一步步返回得到最终问题的解,可以通过下面的图看出递归函数的调用我们将一个字符串看成两部分组成,第一部分是第一个字符,第二部分是后面的所有字符,所以求整个字符串的排列,可以
2016-04-28 11:58:26
869
原创 数据库(二):高级检索
使用数据库中的函数1 常见的文本处理函数2 常见数值处理函数3 常见的聚集函数分组数据1 数据分组2 分组数据的过滤3 select子句顺序联结表1 关系表2 联结21 内联结22 外联结23 交叉联结1.使用数据库中的函数数据库中存在很多数据处理函数可以使用,使用数据库中自带的函数可以简化操作,但是也可能带来兼容性问题,因为不同的数据库管理系统有不同的数据处理函数,需要注
2016-04-20 22:01:56
5346
原创 UNP(一):网络编程角度下的TCP、UDP协议
此博文是学习UNP(UNIX Network Programming)后的读书笔记,供以后自己翻阅回顾知识。TCP、UDP概述 在前面《计算机网络与TCP/IP》栏目下已经介绍过一些关于TCP、UDP的相关知识TCP/IP(三):传输层TCP与UDP,这里只是简单从UNIX网络编程的角度介绍TCP、UDP协议。我们都知道UDP 缺乏可靠性、无连接的,面向数据报 的协议,如果想确保数据报到达目的地
2016-04-18 16:27:29
9150
原创 结构体字节对齐
结构体的各个成员并不是一个紧挨着一个的,中间可能有填充(Padding),不仅如此,在结构体的结尾可能也有填充。 最后sizeof(s)的值为12, 并不是1+2+4+1=8,出现这种现象的原因是计算机体系结构对于访问内存的限制,访问4字节的指令所访问的内存地址应该是4的整数倍,访问2字节的指令所访问的内存地址应该是2字节的整数倍,这称为对齐(Alignment)。对于上面的结构体,编译器会把它的基
2016-04-18 10:30:12
1928
原创 TCP/IP(三):传输层TCP与UDP
TCP协议概述 TCP协议和UDP协议处于同一层:传输层,但是两者之间有很大的区别,TCP协议具有以下特点:TCP提供可靠的数据传输服务,TCP是面向连接的,即数据在通信之间要先建立连接,结束通信时要释放连接,这也是后面所说的3次握手,4次挥手;TCP是点对点的连接方式,即一条TCP连接两端只能是两个端点;TCP提供可靠的,无差错的,不丢失,不重复,按顺序的服务;TCP提供全双工通
2016-04-18 09:36:14
7796
原创 TCP/IP(二):数据链路层和网络层
数据链路层数据链路层的功能: 1)将数据封装成帧,帧是数据链路层传输的单位 2)控制帧的传输:处理简单的传输差错,调节发送速率,接送方匹配 3)维持两个连接网络实体间的链路建立、维持和释放管理链路层的3个作用: 1)为IP模块发送和接收IP数据报 2)为ARP模块发送ARP请求和接收ARP应答 3)为RARP模块发送RARP请求和接收RARP应答注意MTU(最大传输单元)规定的是帧的
2016-04-17 14:38:28
10604
原创 TCP/IP(一):TCP/IP协议简单介绍
OSI的7层协议体系和TCP/IP 4层协议体系如下图所示,OSI模型完整但是复杂不太实用,如今应用最多的是TCP/IP 4层协议体系:网络接口层,网络层(IP),传输层(TCP、UDP), 应用层。各层包含的协议:应用层:应用程序通过这一层访问网络,常见 FTP、HTTP、DNS 和 TELNET 协议;传输层:TCP 协议和 UDP 协议;网络层:IP 协议,ARP、RARP 协议,ICM
2016-04-17 13:33:00
5928
原创 数据库(一):概述
了解MYSQL数据库是一个以某种有组织的方式存储的数据集合。数据库中通过 表 这种结构化的文件来存储某种特定类型的数据,例如: studentID studentName studentAge 20101101 Li Hua 18 20101102 Andy 19 20101103 John 20上面是一个统计班级学生信息表结构, 一般在一个特定的
2016-04-16 21:16:05
4604
转载 网关和路由的区别
网关和路由的区别 顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。 按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。 那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络
2015-08-09 12:55:30
589
转载 详解计算机主机网关的作用
假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。 但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也
2015-08-09 12:30:25
592
转载 深度优先遍历和广度优先遍历思考
原地址在说两种算法之前先说说什么叫“搜索”:可能很多人对搜索的想法有点不对,很多人认为搜索是对已知的一棵树或者是已知的图进行搜索,所以我们常常把搜索和遍历给搞混了,但是其实搜索针对的并不是已知的,这并不代表搜索不能用于已知的,搜索一般用于未知的树,或者未知的图,而我们仅仅是知道这个树或图的产生规则。这个时候才会产生深度优先搜索和广度优先搜索。然后说一下深度优
2015-07-03 11:38:38
3705
转载 Linux系统的启动过程
BIOS 简述:当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。当计算机打开电源时,内存里包含的是一些随机的数据,所有的东西都没有被初始化,操作系
2015-05-27 17:03:07
642
转载 C语言的数组名和对数组名取地址
相信不少的C语言初学者都知道,数组名相当于指针,指向数组的首地址,而函数名相当于函数指针,指向函数的入口地址。现在又这样一个问题,如果对数组名取地址,那得到的会是什么呢?很多人立刻会想到:给指针取地址,就是指针的指针,既二级指针嘛!当然这样的结论是错误的,不然这篇笔记也就没有意义了。下面我们来逐步分析,下面是一段验证这个问题的代码Code:#includ
2015-05-27 13:01:07
572
转载 集合元素的排列和组合
一、集合的排列 给定一个集合S,含有n个不重复的元素,输出该集合元素的所有排列,leetcode对应题目为:http://oj.leetcode.com/problems/permutations/。打印所有排列的复杂度为O(n*n!),因为共有n!个不同的排列,打印每个排列的复杂度为O(n)。打印所有的排列一般采用深搜策略,先给出一个常规的方法:[cp
2015-05-24 21:02:45
1564
转载 分治算法
分治算法详解 一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以
2015-05-22 09:18:16
595
转载 C++的一大误区——深入解释直接初始化与复制初始化的区别
不久前,在博客上发表了一篇文章——提高程序运行效率的10个简单方法,对于其中最后一点,多使用直接初始化,有很多读者向我提出了疑问,并写了一些测试程序,来说明直接初始化与复制初始化是同一件事。让我了解到大家对于直接初始化与复制初始化的区别的确是不太清楚,无可否认,那篇文章的例子用得的确不太好,在这里表示歉意!所以我觉得还是有必要跟大家详细分享一下我对直接初始化和复制初始化的理解。
2015-04-26 09:59:42
498
原创 进程通信-管道 read & write
管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
2015-04-13 11:15:13
3259
转载 BM算法
转载处:http://blog.youkuaiyun.com/v_JULY_v/article/details/6545192第二部分、BM算法1、简单的后比对算法 为了更好的理解BM算法,我分三步引入BM算法。首先看看下面的一个字符串匹配算法,它与前面的回溯法差不多,看看差别在哪儿。/*! int search_reverse(char cons
2015-04-11 20:56:09
638
转载 编写一个守护进程
守护进程-----也就是常说的Daemon进程,是linux后台的服务进程,是一个生存期较长的进程,独立于终端并且周期性的执行某种任务或等待处理某些任务。守护进程在系统引 导时载入时启动,在系统关闭时终止。linux下的许多系统服务都是守护进程完成的。守护进程还能完成许多系统任务,如作业规划进程crond,打印进程lqd(d就是
2015-04-11 13:40:38
652
转载 linux文件设备与I/O:read/write函数 与 阻塞 Block
一,read 函数从打开的设备或文件中读取数据#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 读上来的数据保存在缓冲区buf 中,同时文件的当前读写位置向
2015-04-11 12:39:35
3708
转载 Linux下DIR,dirent,stat等结构体详解
copy from 点击打开链接最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream { void *__fd; char *__data;
2015-04-09 16:51:02
908
转载 从头到尾彻底理解KMP
[置顶] 从头到尾彻底理解KMP(2014年8月22日版)分类: 01.Algorithms(研究) 02.Algorithms(后续)2011-12-05 13:05 139687人阅读 评论(298) 收藏 举报算法functionstringdelete数据结构目录(?)[+]从头到尾彻底理解KMP
2015-04-07 11:42:35
712
原创 Linux 中批量添加用户
在学习鸟哥的Linux私房菜过程中,发现在批量添加用户的过程中,为避免重复输入新增用户的密码,使用了如下的指令:echo "password" | passwd --stdin username 其中password 为自定义密码,username定义的用户名经过网上查询发现我安装的是Ubuntu,不支持--stdin,可能是因为安全的原因网上批量添加用户有很多方法,我
2014-11-26 11:59:56
1179
原创 VMware 中安装Ubuntu后忘记root密码
下面的叙述只适合利用VMware虚拟机安装Linux的用户:本人现处于学习阶段,勿喷!在VMware中安装Ubuntu后,由于几天没有登录,忘记了root密码,由于登录界面没能弹出像网上所说的grup界面,不能找到好的方法解决,最后在命令行中抱着试一试的心态用安装时创建的用户名输入:xxx@ubuntu:~$ sudo passwd root提示:Enter new UNIX
2014-11-25 19:58:58
666
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人