自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (3)
  • 收藏
  • 关注

原创 shell的特殊字符

(1) * 代表0到无穷个任意字符(2)?代表任意一个字符(3)代表括号内任意一个字符(4)[ - ] 代表一个范围中的任意一个字符 如[0-9] 即是代表0-9之间的一个数(5)[^] 反向选着, 即代表不包含括号内字符的任意一个字符(6)#注释符号(7) 转义符号,即将特殊字符还原成一般的字符(8) | 管道符 (9) ; 连续指令下达分隔符,即连续命令的界定(10) ~

2013-12-31 22:12:47 838

原创 Linux的dd命令创建指定大小文件(空洞文件)的一种实现可能

我们知道在Linux中可以通过dd 这条指令创建一个制定大小的文件; 在创建文件是我们并没有写入任何数据,其中的空间都被填充为0; 具体的创建方法为:dd if = input_file of = output_file bs=block_size count=number如果其中的input_file是一个普通的文件,那么该文件的内容将被复制到output_file把其中的inpu

2013-12-31 22:09:48 6364

原创 C标准库定义的UNIX系统的基本数据类型

基本系统数据类型:某些UNIX系统变量与C的数据类型联系在一起.在头文件中定义了某些与实现有关的数据类型,它们被称为基本数据类型.还有很多这种数据类型定义在其它头文件中.在头文件中,这些数据类型都是用C的typedef来定义的.它们大多数以_t结尾:类型   ==== > 说明caddr_t ===> 核心地址clock_t ===>时钟滴答计数器(进程时间)com

2013-12-31 22:09:14 1385

原创 系统的文件访问权限测试

文件访问权限测试当open函数打开一个文件是,内核以进程的有效用户ID和有效组ID为基础执行有效权限的访问测试.access函数按照实际用户ID和实际组ID进行访问权限测试:#include int access(const char * pathname ,int mode); 返回0(成功) 或者返回-1(失败)mode常量的说明 (在头文件中定义)R_OK ====>测试读

2013-12-31 22:08:21 1172

原创 stat函数和文件类型

文件和目录stat ,fstat , lstat#include stat 函数int stat (const char * restirct pathname ,struct stat * restrict buf)int fstat(int filedes , struct stat * buf)int lstat(const char *restrict pathn

2013-12-31 21:42:39 1606

原创 ThinkPHP的数据表操作

对数据的读取 Read$m=new Model('User');$m=M('User');select$m->select();//获取所有数据,以数组形式返回find$m->find($id);//获取单条数据getField(字段名)//获取一个具体的字段值$arr=$m->where('id=2')->getField('use

2013-12-30 23:21:53 904

原创 Linux的计划任务

at的运作方式我们用at这个指令来产生工作,并将这个工作以文本文件的方式写入到/var/spool/at目录中,这个工作就能等待atd这个服务的取用与执行了.并非每个人都可以使用at,我们可以在/etc/at.allow  和/etc/at.deny 中配置那些用户可以使用atat 的用法:at -c 工作号码-m : 当

2013-12-30 23:18:00 814

原创 Linux 身份切换工具

su [ -lm ]  [ -c 指令 ]  [ username ]- : 使用 -  如 su -  代表使用login-shell 的变量档案得去方式来登入系统如使用者身份没有加上去,则代表切换为root身份-l : 与 - 类似,但后面需要跟欲切换的使用者账号.-m : 与-p是一样的,表示使用目前的环境设定,而不读取

2013-12-30 23:15:27 821

原创 C语言的文件操作

“文件”是指存储在计算机外部存储器中的数据的集合。计 算机根据⽂文件的名字,完成对⽂文件的操作C语⾔言将⽂文件看作是字符构成的序列,即字符流。其基本 的存储单位是字节。⽂文件的读写操作函数,它们都在头⽂文 件stdio.h定义的:• 按字符读写的函数fgetc()、fputc()• 按字符串读写的函数fgets()、fputs()• 按格式要求读写的函数fprintf()、

2013-12-30 23:11:20 1055

原创 fgets 和fputs函数

/* * 库函数fgets * char *fgets(char *line ,int maxline , FILE *fp) ; *fp指向的从文件读取下一个输入行(包括换行符) ,并将它存放在字符数组中; * 一行最多可读取maxline-1个字符,读取的行以'\0'结尾保存在字符数组中 * */char * fgets(char *s, int maxline ,FILE *

2013-12-29 23:50:27 1261

原创 grtline.c

#include #define MAXLINE 1000 // getline : read a line into s , return length of the line int _getline(char s[], int lim){ int c, i ; for ( i = 0 ; i < lim-1 && (c = getchar()) != EOF && c !=

2013-12-29 21:45:33 751

原创 C语言mini版grep程序

#include #include #define MAXLINE 1000int _getline(char *line ,int max);int main(int argc , char ** argv){ char line[MAXLINE]; int found = 0 ; if(argc !=2 ) printf("Usage: find pattern:

2013-12-29 21:44:13 1233

原创 C语言版cat小程序

#include #include void _filecopy(FILE *fp_in, FILE * fp_out);int main(int argc , char * argv[]){ FILE * fp; char *prog = argv[0] ; //指定的错误输出文件名; if( argc == 1 ) //没有指定打开文件,把标准输入复制到标准输出 _fi

2013-12-29 21:40:00 848

原创 vim

vim环境的设置~/.viminfo 这个文件保存了我们使用vim是的一些信息;当我们在次使用vim时,更具这个文件vim就知道我们之前使用的一些信息; 如果我们使用过vim这个文件会自动在我们的家目录中生成d (删除 ) +要删除的行数或字母的个数(+上下方向键或者左右方向键)或v (可视化的选择)gU (变大写) 操作和d一样gu (变小写)等等0 → 先到

2013-12-28 23:31:06 805

原创 vim 配置文件

source $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswin"设置vim外观colorscheme elflord"set guifont=Monaco\ 10set guifont=Monaco\ for\ Powerline\ 10set nuset ai "设置自动缩进set t

2013-12-28 00:03:40 1308

原创 ANSI C语言中的全部转义字符

\a  =====>响铃符\r =====>回车符\f ======>换页符\b ======> 回退符\t =====>制表符(横向)\v =====>制表符(纵向)\\ ======>反斜杠\? ======>问号\' =======>单引号\" =======>双引号\ooo =====>八进制数\xhh ======>十六进制数

2013-12-27 22:29:40 1659

转载 如何学好C语言

原文链接:http://coolshell.cn/articles/4102.html我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子。比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是对于程序员来说可能并不太好,原因有两个:虚拟机屏蔽了操作系统的系统调用,以及很多底层机制。

2013-12-27 16:30:58 649

转载 如何学习C语言

漫谈C语言及如何学习C语言原文链接:http://sunxiunan.com/?p=1661漫谈C语言及如何学习C语言云风最近写了一篇博客《C语言的前世今生》。作为长期使用C语言开发网络游戏服务器的程序员,云风是有理由写这样一篇文字,不过还是感觉谈的不够深入,C语言在业界使用的现状没有怎么描写,有些意犹未尽。在这里想比较系统的谈谈个人对C语言学习方式方法的理解。分别

2013-12-27 16:15:20 1307

原创 MySQL 的数值数据类型

MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL允许我们指定数值字段中的值是否有正负之分或者用零填补。  表列出了各种数值类型以及它们的允许范围和占用的内存空间。类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,

2013-12-22 21:38:33 749

原创 程序的局部性

局部性通常分为两种形式:时间局部性和空间局部性,在一个具有良好时间局部性的程序中,被引用过一次的存储位置很可能在不久的将来在被多次引用.在一个具有良好的空间局部性的程序中,如果一个存储器位置引用了一次,那么程序很可能在不要的将来引用附近的一个存储器位置. 步长:访问一个连续向量的每一个元素,具有步长为1的引用模式;访问一个连续向量的每第K个元素,就被称为步长为K的引用模式,步长为1

2013-12-22 21:33:10 2319 1

原创 传输层: 选择重传协议

选择重传协议返回N协议简化了接收方的处理过程.接收方只需跟踪一个变量,并且不需要对失序到达的分组缓存,而是简单地把失序到达的分组它们丢掉.但是如果低下的网络层协议丢失了很多分组,那么返回N协议的效率就会很低.每当一个分组损坏,发送方就需要重传所有待确认的分组,虽然其中有些分组实际上已经完好地 被接收了.选择重传协议(Selective-Repeat, S

2013-12-21 22:06:57 25875 1

原创 运输层协议:(2)Go-Back-N 协议

返回N协议(GO-Back -N)为了提高效率填满管道,在发送方等待确认时,应当有多个分组正在传送中.也就是说我们需要让多喝分组处于等待确认的状态,以便在发送方等待确认的同时,信道也能保持忙碌状态.返回N协议(GO-Back -N  GBN)的关键是发送方能够在收到确认之前发送多个分组,但接收方只能缓存一个分组.发送方为发送出去的分组保留副本,直到来自接收方确认达到.

2013-12-21 22:06:40 28287 2

原创 运输层:有限状态机(finite state machine FSM)

有限状态机(finite state machine  FSM)无论是提供无连接的服务还是面向连接的服务,,一个运输层协议的行为都可以很好地用一个有限状态机来表示.运输层的发送方和接收方都可以被看做是一个具有有限状态的机器.有限状态机总是处于某一种状态中,直到有一件事情发生.对每个时间的响应有两种 : (1)定义要执行的动作列表(可能为空),并决定下一个状态(可能与当前

2013-12-21 21:04:31 1739

原创 运输层:面向连接的服务和无连接的服务

无连接的服务和面向连接的服务:像网络层一样,运输层也可以提供两种类型的服务:无连接的服务和面向连接的服务.不过这两种服务在本质桑与网络层不同.在网络层,无连接非服务意味着同一报文的多个数据采取了不同的路径(并且是失序抵达的),而面向连接的服务意味着属于同一报文的多个数据报采取相同的路径(并且是顺序抵达的).而在运输层,我们并不关心分组采取什么样的物理路径(我们假设在两个运输层之间有一条

2013-12-21 21:02:21 6289

原创 IP分组的交付和转发 : (5) 路由器的构件

一个路由器与四个主要构件:(1) 输入端口(Input port)(2)输出端口 (output port)(3)路由选择处理器(routing processor)(4)交换结构(switching fabric)1 输入端口 :输入端口执行路由器的物理层和数据链路层的功能.它从接收到的信号中 得

2013-12-20 19:52:59 1584

原创 IP分组的交付和转发:(4)基于标记的转发

基于标记的转发在一个无连接的网络中,路由器根据分组首部的目的地址来转发该分组.另一方面,在一个面向连接的网络(虚拟电路)中,交换机则根据附加在分组上的标记来转发该分组.路由选择通常基于对路由表的内容的搜索,而交换机则可以用一个索引访问交换表来完成.即路由选择涉及到搜索过程,而交换机则涉及到直接访问.当转发算法的到分组的目的地址后它就埋头在掩码列表中开始搜索.对于每一个表项,

2013-12-20 19:52:25 1497

原创 IP分组的交付和转发:(3)-使用分类地址的转发

一   使用分类地址是的转发:无子网划分的转发:由于分类编址总存在默认掩码,所以使得转发过程比较简单.在使用分类编址时,全球因特网中的绝大多数路由器都没有涉及到子网的划分.子网划分是在一个组织内部进行的(对外部是透明的).在这种情况下,一个典型的转发需要三张表,每个单播类别对应一张表.如果路由器支持多播,那么还要增加一张处理D类地址的表.有了这三张表,就使得不同的表的搜素效率更高.

2013-12-20 19:51:41 1957

原创 IP分组的交付和转发系列:(2)常见的转发技术

转发当IP作为无连接的协议时,转发的基础是IP数据报的目的地址,而当IP作为面向连接的协议时,转发的基础是附加在IP数据报上面的标记一 基于目的地址的转发这是一种传统的转发方式,这种情况要求路由器具有一张路由表才能进行转发.当主机有分组要转发,或者路由器收到要转发的分组,就要搜查路由表,找出到达最后重终点的路由,但是这种方法比较低效,因为路由表的项数过多

2013-12-20 19:50:55 1835

原创 IP分组的交付和转发系列: (1) 直接交付和间接交付

(1)分组在网络层的交付以及直接交付和间接交付的区别(2)分组在网络层的转发以及基于目的地址和基于标记的转发之间的区别(3)不同的转发技巧:1下一跳法2 特定网络法3特定主机法4默认方法(4) 分类编址和无分类编址时路由表的内容(5) MPLS技术  ,如何用它来实现基于标记的转发(6) 路由器的组

2013-12-20 19:49:41 28654 5

原创 shell中常用的特殊字符

(1) * 代表0到无穷个任意字符(2)?代表任意一个字符(3)代表括号内任意一个字符(4)[ - ] 代表一个范围中的任意一个字符 如[0-9] 即是代表0-9之间的一个数(5)[^] 反向选着, 即代表不包含括号内字符的任意一个字符(6)#注释符号(7) 转义符号,即将特殊字符还原成一般的字符(8) | 管道符 (9) ; 连续指

2013-12-19 22:29:20 1039

原创 thinkPHP模板的输出和模型的使用

a、通过 echo 等PHP原生的输出方式在页面中输出b、通过display方法输出想分配变量可以使用assign方法c、修改左右定界符休要修改配置文件中的配置项'TMPL_L_DELIM'=>''TMPL_R_DELIM'=>'}>', //修改右定界符二、ThinkPHP 3 的模型使用 (重点)需要在方法中通过new Model(表名)的形式操作数据库

2013-12-19 22:27:15 837

原创 thinkPHP的常用配置项

'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符'TMPL_L_DELIM'=>''TMPL_R_DELIM'=>'}>', //修改右定界符'DB_TYPE'=>'mysql', //设置数据库类型'DB_HOST'=>'localhost',//设置主机'DB_NAME'=>'thinkphp',//设置数据库名'DB_USER'=>'root'

2013-12-19 22:25:14 815

原创 (网络层: 二 ) 网络层提供的服务(基于无连接的服务)

网络层提供了端到端的通信,所以两台计算机想要进行通信就必须具有网络层地址(逻辑地址)不同网络之间的计算机互相通信过程中涉及到的组要角色有:(1)源计算机(2)路由器(3)目的计算机要实现通信的目的,每个角色的网络层都需要提供相应的服务一 : 源计算机网络层提供的服务源计算机上的网络层提供四种服务: 1 分组化处理,

2013-12-19 22:20:09 2917

原创 (网络层: 一) 电路交换和分组交换

电路交换和分组交换交换报文从源点到终点的旅途中要做出许多的判决.当一个报文抵达某个链接设备时,必须做出一个判决以决定该分组应当从哪个输出端口发出去.换而言之,链接设备就像交换机那样,将一个端口与拧一个端口链接起来.电路交换电路交换需要在报文传递之前在源点和终点之间先建立一条物理电路(或信道).在电路已建立的情况下,该报文完整地从源

2013-12-19 22:10:35 3609

原创 异常控制流

异常控制流:从个处理器加电开始,知道断电为止,程序计数器假设一个序列的值  a0  ,a1 ,a2 …..an-1 其中每个ak是某个相应地指令I k的地址,每次从ak到ak+1的过度称为控制转移.这样的控制转移叫做处理器的控制流(control flow). 最简单的一种控制流是一种平滑的序列,其中Ik和Ik+1在存储器中都是相邻的.  这种平滑的突变,也就是Ik+1与IK不相邻,是由诸

2013-12-18 20:36:56 1058

原创 thinkphp的目录结构

├─ThinkPHP.php 框架入口文件├─Common 框架公共文件├─Conf 框架配置文件├─Extend 框架扩展目录├─Lang 核心语言包目录├─Lib 核心类库目录│ ├─Behavior 核心行为类库│ ├─Core 核心基类库│ ├─Driver 内置驱动│ │ ├─Cache 内置缓存驱动│ │ ├─Db 内置数据库驱动│ │ ├─

2013-12-18 20:33:37 844

原创 canvas学习(1)

--canvas.getContext("2d")-- 矩形API
1rect() 创建矩形2fillRect() 绘制“被填充”的矩形 3strokeRect() 绘制矩形(无填充) 矩形API
1rect() 创建矩形2fillRect() 绘制“被填充”的矩形 3strokeRect() 绘制矩形(无填充)参数:x,y,width,height,--

2013-12-17 21:39:04 1237

原创 MySQL中的数据类型

MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL允许我们指定数值字段中的值是否有正负之分或者用零填补。  表列出了各种数值类型以及它们的允许范围和占用的内存空间。类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节

2013-12-17 21:33:52 1068

原创 链接和共享库

链接:链接就是将不同部分的代码和数据集合成一个单一文件的过程,这个文件可以被加载(或者被拷贝)到存储器并执行。链接可执行于编译时(compile time) 也就是源代码被翻译成机器代码时;也可以执行于加载时(load time),也就是程序被加载器加载到存储器并执行时;甚至执行于运行时(run time),由应用程序来执行。为了构造可执行文件,连接器必须完成两个主要任务:符号解析。目标文件定义和

2013-12-17 21:26:28 1377 1

原创 PHP的错误报告设置

用15个2进制位表示(15个基本错误类型,PHP手册中又详细的说明),从左到右,每一位代表一种基本错误类型,1代表报类型的错误,0代表不报该类型的错误;系统用常量把个类型的错误代替了;可以用数字也可以用常量fatal error   1   00000 00000 00001   E_ERROR  致命错误,如内存分配导致的问题,脚本不运行;

2013-12-17 21:19:07 1125

最好的vim使用参考手册

最好的vim使用参考手册

2013-12-30

the C programming (K&R)

学习C语言必备圣经 .这个不用多介绍了吧! 好好看吧! 肯定或收获很多的

2013-12-02

空空如也

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

TA关注的人

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