09 2014 档案

Traffic Manager:Azure中国版 正式发布
摘要: 我们很高兴地宣布Azure Traffic Manager 现已面向中国版Azure正式发布。此版本现已投入生产,由企业 SLA支持,随时可用于生产场景中。 借助Azure Traffic Manager,您可以控制用户流量到托管在Azure内部或外部的应用程序的分配。您的应用程序... 阅读全文

posted @ 2014-09-30 15:28 三少爷的剑123 阅读(129) 评论(0) 推荐(0) 编辑

Linux Shell编程(30)——别名
摘要:Bash别名本质上是一个简称, 缩写, 这可避免键入过长的命令序列. 例如,如果我们添加 alias lm="ls -l | more" 这一行到文件~/.bashrc file里, 然后每次在命令行键入lm 将会自动被替换成ls -l | more. 这使用户在命令行不必键冗长的命令序列也避免了... 阅读全文

posted @ 2014-09-30 08:22 三少爷的剑123 阅读(182) 评论(0) 推荐(0) 编辑

Linux Shell编程(29)——函数
摘要:和"真正的"编程语言一样, Bash也有函数,虽然在某些实现方面稍有些限制. 一个函数是一个子程序,用于实现一串操作的代码块,它是完成特定任务的"黑盒子". 当有重复代码, 当一个任务只需要很少的修改就被重复几次执行时, 这时你应考虑使用函数.function function_name { co... 阅读全文

posted @ 2014-09-30 08:20 三少爷的剑123 阅读(153) 评论(0) 推荐(0) 编辑

Linux Shell编程(28)——进程替换
摘要:进程替换与命令替换很相似. 命令替换把一个命令的结果赋给一个变量,例如 dir_contents=`ls -al`或xref=$. 进程替换则是把一个进程的输出回馈给另一个进程 (换句话说,它把一个命令的结果发送给另一个命令).命令替换的一般形式由圆括号括起的命令>(command)文件把在圆括号... 阅读全文

posted @ 2014-09-30 08:18 三少爷的剑123 阅读(1254) 评论(0) 推荐(0) 编辑

Linux Shell编程(27)——子shell
摘要:运行一个shell脚本时会启动另一个命令解释器. 就好像你的命令是在命令行提示下被解释的一样, 类似于批处理文件里的一系列命令.每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.sh... 阅读全文

posted @ 2014-09-30 08:17 三少爷的剑123 阅读(198) 评论(0) 推荐(0) 编辑

Linux Shell编程(26)——代码块重定向
摘要:像 while, until, 和 for 循环代码块, 甚至 if/then 测试结构的代码块都能做到标准输入的重定向. 即使函数也可以使用这种重定向的格式 。所有的这些依靠代码块结尾的 < 操作符来做到.例子:while 循环的重定向#!/bin/bash# redir2.shif [ -z ... 阅读全文

posted @ 2014-09-30 08:13 三少爷的剑123 阅读(336) 评论(0) 推荐(0) 编辑

Linux Shell编程(25)——I/O 重定向
摘要:默认情况下始终有3个"文件"处于打开状态, stdin (键盘), stdout (屏幕), and stderr (错误消息输出到屏幕上). 这3个文件和其他打开的文件都可以被重定向. 对于重定向简单的解释就是捕捉一个文件, 命令, 程序, 脚本, 或者甚至是脚本中的代码块(参见 Example... 阅读全文

posted @ 2014-09-30 08:13 三少爷的剑123 阅读(153) 评论(0) 推荐(0) 编辑

Linux Shell编程(24)——命令替换
摘要:命令替换 将会重新分配一个命令[1]甚至是多个命令的输出; 它会将命令的输出如实地添加到另一个上下文中. [2]使用命令替换的典型形式是使用后置引用(`...`). 后置引用形式的命令(就是被反引号括起来)将会产生命令行文本. 1 script_name=`basename $0` 2 e... 阅读全文

posted @ 2014-09-30 08:10 三少爷的剑123 阅读(234) 评论(0) 推荐(0) 编辑

Linux Shell编程(23)——文本处理命令
摘要:处理文本和文本文件的命令sort文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用 -m 选项, 它将会合并预排序的输入文件. 想了解这个命令的全部参数请参考这个命令的 info 页. 见 Example 10-9, Example... 阅读全文

posted @ 2014-09-30 08:08 三少爷的剑123 阅读(200) 评论(0) 推荐(0) 编辑

Linux Shell编程(22)——时间/日期 命令
摘要:date直接调用, date 就会打印日期和时间到 stdout 上. 这个命令有趣的地方在于它的格式化和分析选项上.time输出统计出来的命令执行的时间.touch这是一个用来更新文件被存取或修改的时间的工具,这个时间可以是当前系统的时间,也可以是指定的时间, 这个命令也用来产生一个新文件.Ex... 阅读全文

posted @ 2014-09-30 08:04 三少爷的剑123 阅读(870) 评论(0) 推荐(1) 编辑

Linux Shell编程(21)——复杂命令
摘要:更高级的用户命令find-exec COMMAND \;在每一个find 匹配到的文件执行 COMMAND 命令. 命令序列以 ; 结束( ";" 是 转义符 以保证 shell 传递到find命令中的字符不会被解释为其他的特殊字符).xargs这是给命令传递参数的一个过滤器, 也是组合多个命令的... 阅读全文

posted @ 2014-09-30 08:02 三少爷的剑123 阅读(227) 评论(0) 推荐(0) 编辑

Linux Shell编程(20)——基本命令
摘要:新手必须要掌握的初级命令ls基本的列出所有文件的命令.但是往往就是因为这个命令太简单,所以我们总是低估它.比如,用 -R 选项,这是递归选项,ls 将会以目录树的形式列出所有文件, 另一个很有用的选项是 -S ,将会按照文件尺寸列出所有文件, -t, 将会按照修改时间来列出文件,-i 选项会显示文... 阅读全文

posted @ 2014-09-30 08:01 三少爷的剑123 阅读(111) 评论(0) 推荐(0) 编辑

Linux Shell编程(19)——测试与分支
摘要:case和select结构在技术上说不是循环,因为它们并不对可执行的代码块进行迭代.但是和循环相似的是,它们也依靠在代码块的顶部或底部的条件判断来决定程序的分支.在代码块中控制程序分支case (in) / esac在shell中的case同C/C++中的switch结构是相同的.它允许通过判断来... 阅读全文

posted @ 2014-09-30 07:57 三少爷的剑123 阅读(185) 评论(0) 推荐(0) 编辑

Linux Shell编程(17)——嵌套循环
摘要:嵌套循环就是在一个循环中还有一个循环,内部循环在外部循环体中.在外部循环的每次执行过程中都会触发内部循环,直到内部循环执行结束.外部循环执行了多少次,内部循环就完成多少次.当然,不论是外部循环或内部循环的break语句都会打断处理过程.例子:嵌套循环#!/bin/bash# nested-loop... 阅读全文

posted @ 2014-09-30 07:55 三少爷的剑123 阅读(286) 评论(0) 推荐(0) 编辑

Linux Shell编程(18)—— 循环控制
摘要:影响循环行为的命令break, continuebreak和continue这两个循环控制命令[1]与其它语言的类似命令的行为是相同的. break命令将会跳出循环,continue命令将会跳过本次循环下边的语句,直接进入下次循环..例子:break和continue命令在循环中的效果#!/bin... 阅读全文

posted @ 2014-09-30 07:55 三少爷的剑123 阅读(179) 评论(0) 推荐(0) 编辑

Linux Shell编程(16)——循环
摘要:循环就是重复一些命令的代码块,如果条件不满足就退出循环.for loopsfor arg in [list]这是一个基本的循环结构.它与C的for结构有很大不同.for arg in [list]do command(s)... done 在循环的每次执行中,arg将顺序的存取list中列出... 阅读全文

posted @ 2014-09-30 07:52 三少爷的剑123 阅读(139) 评论(0) 推荐(0) 编辑

Linux Shell编程(15)——操作字符串
摘要:Bash已经支持了令人惊讶的字符串操作的数量。不幸地,这些工具缺乏统一的标准。一些是参数替换的子集,其它受到UNIX的expr命令的功能的影响。这导致不一致的命令语法和冗余的功能,但这些并没有引起混乱。字符串长度${#string}expr length $stringexpr "$string"... 阅读全文

posted @ 2014-09-30 07:51 三少爷的剑123 阅读(168) 评论(0) 推荐(0) 编辑

Linux Shell编程(14)——内部变量
摘要:内建变量影响Bash脚本行为的变量。$BASHBash二进制程序文件的路径 bash$ echo $BASH /bin/bash$BASH_ENV该环境变量保存一个Bash启动文件路径,当启动一个脚本程序时会去读该环境变量指定的文件。$BASH_SUBSHELL一个指示子shell(subshel... 阅读全文

posted @ 2014-09-30 07:49 三少爷的剑123 阅读(358) 评论(0) 推荐(0) 编辑

Linux Shell编程(12)——操作符
摘要:赋值变量赋值初始化或改变一个变量的值=通用的变量赋值操作符,可以用于数值和字符串的赋值 1 var=27 2 category=minerals # "="字符后面不能加空白字符. 不要把"="赋值操作符和=测试操作符搞混了。 # = 用于测试操作符 if [ "$string1"... 阅读全文

posted @ 2014-09-30 07:35 三少爷的剑123 阅读(226) 评论(0) 推荐(0) 编辑

Linux Shell编程(13)——数字常量
摘要:除非一个数字有特别的前缀或符号,否则shell脚本把它当成十进制的数。一个前缀为0的数字是八进制数。一个前缀为0x的数字是十六进制数。一个数用内嵌的#来求值则看成BASE#NUMBER(有范围和符号限制)例子:数字常量的表示法#!/bin/bash# numbers.sh: 不同基数的数字表示法.... 阅读全文

posted @ 2014-09-30 07:34 三少爷的剑123 阅读(212) 评论(0) 推荐(0) 编辑

Linux Shell编程(11)——退出和退出状态
摘要:exit命令一般用于结束一个脚本,就像C语言的exit一样。它也能返回一个值给父进程。每一个命令都能返回一个退出状态(有时也看做返回状态).一个命令执行成功返回0,一个执行不成功的命令则返回一个非零值,此值通常可以被解释成一个对应的错误值。除了一些例外的情况,一个行为端庄的UNIX命令,程序或是软... 阅读全文

posted @ 2014-09-30 07:30 三少爷的剑123 阅读(353) 评论(0) 推荐(0) 编辑

Linux Shell编程(10)——引用变量
摘要:当要引用一个变量的值时,一般推荐使用双引号。使用双引号除了变量名前缀($)、后引符(`)和转义符(\)外,会使shell不再解释引号中其它所有的特殊字符。用双引号时$仍被当成特殊字符,允许引用一个被双引号引起的变量("$variable"), 那也是说$variable会被它的值所代替。用双引号还... 阅读全文

posted @ 2014-09-30 07:28 三少爷的剑123 阅读(374) 评论(0) 推荐(0) 编辑

Linux Shell编程(9)——特殊变量类型
摘要:局部变量局部变量只在代码块或一个函数里有效 (参考函数里的局部变量)环境变量这种变量会影响Shell的行为和用户接口 在大多数情况下,每个进程都会有一个"环境表", 它由一组由进程使用的环境变量组成。这样看来,Shell看起来和其他的进程一样。每次一个Shell启动时,它都会创建新的合适的环境变量... 阅读全文

posted @ 2014-09-30 07:26 三少爷的剑123 阅读(230) 评论(0) 推荐(0) 编辑

Linux Shell编程(8)——变量详解
摘要:不同与许多其他的编程语言,Bash不以"类型"来区分变量。本质上来说,Bash变量是字符串,但是根据环境的不同,Bash允许变量有整数计算和比较。其中的决定因素是变量的值是不是只含有数字.变量没有类型既是幸运的也是悲惨的。它使脚本编程时有更多的弹性(但也可能把你弄晕)并能很容易地写出代码。但是,这... 阅读全文

posted @ 2014-09-30 07:24 三少爷的剑123 阅读(229) 评论(0) 推荐(0) 编辑

Linux Shell编程(6)——变量替换
摘要:变量的名字是它的值保存的地方。引用它的值称为变量替换。$让我们仔细地区别变量和变量的值。如果variable1是一个变量的名字,那么$variable1就是引用这个变量的值――即这个变量它包含的数据。如果只有变量名出现(即指没有前缀$),那就可能是在1)声明一个变量或是在给这个变量赋值。2)声明废... 阅读全文

posted @ 2014-09-30 07:21 三少爷的剑123 阅读(302) 评论(0) 推荐(0) 编辑

Linux Shell编程(7)——变量赋值
摘要:=赋值操作符(它的左右两边不能有空白符) 不要搞混了=和-eq,-eq是比赋值操作更高级的测试。注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符。例子:简单的变量赋值#!/bin/bash# 裸变量echo# 什么时候变量是“裸”的?比如说,变量名前面没有$?#当变量被赋值... 阅读全文

posted @ 2014-09-30 07:21 三少爷的剑123 阅读(345) 评论(0) 推荐(0) 编辑

Linux Shell编程(5)——shell特殊字符(下)
摘要:{}代码块[花括号]. 这个结构也是一组命令代码块,事实上,它是匿名的函数。然而与一个函数所不同的,在代码块里的变量仍然能被脚本后面的代码访问。 bash$ { local a; a=123; } bash: local: can only be used in afunction ... 阅读全文

posted @ 2014-09-30 07:18 三少爷的剑123 阅读(280) 评论(0) 推荐(0) 编辑

Linux Shell编程(4)——shell特殊字符(上)
摘要:在脚本或其他别的地方出现的特殊字符#注释. 以一个#开头的行 (#!是例外) 是注释行.# 这是一行注释.注释也可以出现在一个命令语句的后面。echo "A comment will follow." # 这里可以添加注释.# ^ 注意在#前面... 阅读全文

posted @ 2014-09-30 07:18 三少爷的剑123 阅读(243) 评论(0) 推荐(0) 编辑

Linux Shell编程(3)——运行shell脚本
摘要:写完一个脚本,你能够运行它用命令:sh scriptname, [5] 另外也也可以用bash scriptname. 来执行(不推荐使用:sh <scriptname, 因为这样会禁止脚本从标准输入里读数据)。更为方便的是你可以使用chmod命令来使脚本自身变为可执行的.你可以:chmod 55... 阅读全文

posted @ 2014-09-30 07:13 三少爷的剑123 阅读(163) 评论(0) 推荐(0) 编辑

Linux Shell编程(2)——第一个shell程序
摘要:在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表。这至少让你执行它 时不必重新按顺序键入相同功能的命令序列。一个清空/var/log目录下的日志文件的脚本# Cleanup# 必须以root用户运行. cd /var/logcat /dev/null > messagescat /d... 阅读全文

posted @ 2014-09-30 07:10 三少爷的剑123 阅读(168) 评论(0) 推荐(0) 编辑

Linux Shell编程(1)——shell编程简介
摘要:Shell是一个命令解释器。它不仅是操作系统内核与用户之间的绝缘层,同时也是一种功能相当强大的编程语言。一个Shell程序,通常称为脚本,它是一个由系统调用,命令工具,软件包和已编译的二进制包"粘合" 起来的极易使用的工具。事实上,整个UNIX系统命令,软件包和工具都能由一个shell脚本调用。如... 阅读全文

posted @ 2014-09-30 07:07 三少爷的剑123 阅读(166) 评论(0) 推荐(0) 编辑

Qt入门(20)——Qt模块简介
摘要:当你安装Qt时,这些模块会被构建到库中。在Qt企业版、Qt评估版和Qt自由版中,包含所有的模块。对于Qt专业版,提供基本的模块——工具、核心、窗口部件、对话框、图标视图和工作区模块。画布模块画布模块提供了一个名为QCanvas的高度优化的二维绘图区。 画布可以有任意数量的QCanvasItems。... 阅读全文

posted @ 2014-09-30 06:59 三少爷的剑123 阅读(454) 评论(0) 推荐(0) 编辑

Qt入门(19)——自定义窗口部件
摘要:我们介绍可以画自己的第一个自定义窗口部件。我们也加入了一个有用的键盘接口。我们添加了一个槽:setRange()。 void setRange( int minVal, int maxVal );现在我们添加了设置LCDRange范围的可能性。直到现在,它就可以被设置为0~99。在构... 阅读全文

posted @ 2014-09-30 06:54 三少爷的剑123 阅读(319) 评论(0) 推荐(0) 编辑

Qt入门(18)——使用信号和槽连接控件
摘要:下面显示了如何使用信号和槽来创建自定义窗口部件,和如何使用更加复杂的方式把它们连接起来。首先,源文件被我们分成几部分并放在放在t7目录下。t7/lcdrange.h包含LCDRange类定义。t7/lcdrange.cpp包含LCDRange类实现。t7/main.cpp包含MyWidget和ma... 阅读全文

posted @ 2014-09-30 06:51 三少爷的剑123 阅读(399) 评论(0) 推荐(0) 编辑

Qt入门(17)——组装复杂的控件
摘要:下面是如何把两个窗口部件封装成一个新的组件。首先,我们使用一个自定义的窗口部件作为一个子窗口部件。#include #include #include #include #include #include #include class LCDRange : public QVBox{public:... 阅读全文

posted @ 2014-09-30 06:47 三少爷的剑123 阅读(310) 评论(0) 推荐(0) 编辑

Qt入门(16)——组装窗口部件
摘要:这个例子显示了创建几个窗口部件并用信号和槽把它们连接起来,和如何处理重新定义大小事件。 #include #include #include #include #include #include 这里显示的是三个新的被包含的头文件。qslider.h和... 阅读全文

posted @ 2014-09-30 06:45 三少爷的剑123 阅读(234) 评论(0) 推荐(0) 编辑

Qt入门(15)——使用窗口部件
摘要:下面是如何创建一个你自己的窗口部件,描述如何控制一个窗口部件的最小大小和最大大小,并且介绍了窗口部件的名称。 class MyWidget : public QWidget { public: MyWidget( QWidget *parent=0, const char... 阅读全文

posted @ 2014-09-30 06:43 三少爷的剑123 阅读(246) 评论(0) 推荐(0) 编辑

Qt入门(14)——父窗口部件和子窗口部件
摘要:这个例子演示了如何创建一个父窗口部件和子窗口部件。我们下面使用一个单一的父窗口部件和一个独立的子窗口部件编写界面。 #include 我们添加了一个头文件qvbox.h用来获得我们要使用的布局类。 QVBox box;这里我们简单地创建了一个垂直的盒子容器。QVBox把它的子窗... 阅读全文

posted @ 2014-09-30 06:40 三少爷的剑123 阅读(589) 评论(0) 推荐(0) 编辑

Qt入门(13)——Qt的调用退出
摘要:如果我们创建了一个窗口,接下来使这个应用程序在用户让它退出的时候退出。 #include 因为这个程序使用了QFont,所以它需要包含qfont.h。Qt的字体提取和X中提供的可怕的字体提取大为不同,字体的载入和使用都已经被高度优化了。 QPushButton quit( "Q... 阅读全文

posted @ 2014-09-30 06:38 三少爷的剑123 阅读(607) 评论(0) 推荐(0) 编辑

Qt入门(12)——Qt国际化
摘要:应用的国际化就是使应用成为能被非本国的人使用的过程。有的情况下,国际化很简单,例如,使一个US应用可被Australian或者British用户理解,工作可能少于几个拼写修正。但是使一个US应用可以被Japanese用户使用,或者一个Korean应用可被German用户使用,就会需要软件不仅工作于... 阅读全文

posted @ 2014-09-30 06:34 三少爷的剑123 阅读(251) 评论(0) 推荐(0) 编辑

Qt入门(11)——Qt插件
摘要:Qt提供了一个简单地插件接口,可以轻松地生成作为独立组件的定制数据库驱动、图象格式、文本编解码器(text codec)、风格(style)和部件。警告:Qt 3.0.5对插件的一些方面做了改变,具体涉及到装载、路径操作和库版本。这些变化的结果是,Qt 3.0.4及以前版本编译的插件都不能用于Qt... 阅读全文

posted @ 2014-09-30 06:30 三少爷的剑123 阅读(364) 评论(0) 推荐(0) 编辑

Qt入门(10)——调试技术
摘要:命令行参数当你运行Qt程序时,你可以指定几个命令行参数来帮助你调试。-nograb 应用程序不再捕获鼠标或者键盘。当程序在Linux下运行在gdb调试器中时这个选项是默认的。-dograb 忽略任何隐含的或明显得-nograb。即使-nograb出现在命令行的最后,-dograb也会超过-nogr... 阅读全文

posted @ 2014-09-30 06:28 三少爷的剑123 阅读(413) 评论(0) 推荐(1) 编辑

Qt入门(9)——Qt中的线程支持
摘要:Qt对线程提供了支持,基本形式有独立于平台的线程类、线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法。警告:所有的GUI类(比如,QWidget和它的子类),操作系统核心类(比如,QProcess)和网络类都不是线程安全的。QRegExp使用一个静态缓存并且也不是线程... 阅读全文

posted @ 2014-09-30 06:28 三少爷的剑123 阅读(209) 评论(0) 推荐(0) 编辑

Qt入门(8)——事件和事件过滤器
摘要:在Qt里,一个事件是继承自QEvent的对象。事件通过调用QObject::event(),被发送到继承自 QObject 的对象。事件发送就是一个事件已经产生,由 QEvent正好去表达,且QObject 需要去回应。多数事件针对 QWidget和他的子类的,此外还有些不和图形相关的重要事件,比... 阅读全文

posted @ 2014-09-30 06:25 三少爷的剑123 阅读(350) 评论(0) 推荐(0) 编辑

Qt入门(7)——窗口几何结构
摘要:QWidget提供了几个处理窗口几何结构的函数。这些函数中的几个操作纯客户区域(例如不包含窗口框架的窗口),其它一些包括窗口框架。它们之间的区别在某种意义上被完成覆盖明显地最普通的方法。包括窗口的框架:x(), y(), frameGeometry(), pos() and move()不包括窗口... 阅读全文

posted @ 2014-09-30 06:21 三少爷的剑123 阅读(288) 评论(0) 推荐(0) 编辑

基于物联网操作系统HelloX的智慧家庭体系架构
摘要:基于物联网操作系统HelloX的智慧家庭体系架构 智慧家庭是物联网的一个分支应用,是一个被广泛认同的巨大IT市场空间。目前市场上已经有很多针对智慧家庭的产品或解决方案,但与移动互联网不同,智慧家庭至今尚未形成一个完整的生态系统。究其原因,在于不同的智慧家庭参与者,对智慧家庭的理解不同。有的人... 阅读全文

posted @ 2014-09-27 12:23 三少爷的剑123 阅读(222) 评论(0) 推荐(0) 编辑

C语言基础课程 第三课 ADB(Android Debug Bridge)的使用
摘要: C语言基础课程 第三课 ADB(Android Debug Bridge)的使用 由于前面已经发布过Linux的博客了 基础班将Linux基础命令就不单独发表博客了,本节课主要就是利用adb连接手机进行一个Linux基本命令的复习。而且熟悉手机的底层运作,不用界面操作照样也能... 阅读全文

posted @ 2014-09-26 23:09 三少爷的剑123 阅读(222) 评论(0) 推荐(0) 编辑

C语言基础课程 第二课 HelloWorld不为菜鸟所知的秘密
摘要:1 愉快的开端hello world 41.1 include头文件包含 41.2 main函数 41.3 注释 41.4 {}括号,程序题和代码块 41.5 声明 41.6 C语言自定义名字的要求 41.7 ... 阅读全文

posted @ 2014-09-25 18:46 三少爷的剑123 阅读(258) 评论(0) 推荐(0) 编辑

C语言基础课程 第一课 Linux环境配置小实战httpserver
摘要: C语言基础课程 第一课 Linux环境配置小实战httpserver 首先环境需要的是redhat虚拟机操作系统打开redhat 防火墙2.将WWW(HTTP)勾选上3.点击apply 点击是4.切换到root用户输入正确的root密码5. 启动http服务6.输入ifconf... 阅读全文

posted @ 2014-09-23 18:12 三少爷的剑123 阅读(114) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(6)——libevent企业级开发之内存管理
摘要:默认情况下,libevent使用C库的内存管理函数在堆上分配内存。通过提供malloc、realloc和free的替代函数,可以让libevent使用其他的内存管理器。希望libevent使用一个更高效的分配器时;或者希望libevent使用一个工具分配器,以便检查内存泄漏时,可能需要这样做。接... 阅读全文

posted @ 2014-09-23 15:06 三少爷的剑123 阅读(229) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(7)——libevent企业级开发之锁和线程
摘要:编写多线程程序的时候,在多个线程中同时访问同样的数据并不总是安全的。libevent的结构体在多线程下通常有三种工作方式:1、某些结构体内在地是单线程的:同时在多个线程中使用它们总是不安全的。2、某些结构体具有可选的锁:可以告知libevent是否需要在多个线程中使用每个对象。3、某些结构体总是... 阅读全文

posted @ 2014-09-23 15:06 三少爷的剑123 阅读(93) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(5)——libevent企业级开发之简介
摘要:Libevent是一个用于编写高速可移植非阻塞IO应用的库,它的设计目标是: 可移植性:使用libevent编写的程序应该可以在libevent支持的所有平台上工作。即使没有好的方式进行非阻塞IO,libevent也应该支持一般的方式,让程序可以在受限的环境中运行。速度:libevent尝试使用... 阅读全文

posted @ 2014-09-23 15:01 三少爷的剑123 阅读(154) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(4)——epoll企业级开发之epoll例程
摘要:为了使大家更加深入了解epoll模型在企业应用中的使用,下面给出一段基于epoll的服务器代码,并在代码中添加了详细注释: #include #include #include #include #include #include #include #include #include #inc... 阅读全文

posted @ 2014-09-23 14:59 三少爷的剑123 阅读(189) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(2)——epoll企业级开发之epoll接口
摘要:epoll的接口非常简单,总共只有三个函数: 1、int epoll_create(intsize); 生成一个 Epoll 专用的文件描述符,size用来告诉内核这个监听的数目一共有多大。这个参数不同于select()中的第一个参数,给出最大监听的fd+1的值。需要注意的是,当创建好epoll... 阅读全文

posted @ 2014-09-23 14:56 三少爷的剑123 阅读(172) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(3)——epoll企业级开发之epoll模型
摘要:EPOLL事件有两种模型:Edge Triggered (ET) 边缘触发 只有数据到来,才触发,不管缓存区中是否还有数据。Level Triggered (LT) 水平触发 只要有数据都会触发。 假如有这样一个例子:1. 我们已经把一个用来从管道中读取数据的文件句柄(RFD)添加到epol... 阅读全文

posted @ 2014-09-23 14:56 三少爷的剑123 阅读(153) 评论(0) 推荐(0) 编辑

Linux企业级开发技术(1)——epoll企业级开发之简介
摘要:Epoll是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入。和 select 相似,是高效 I/O 多路复用技术。其实在 Linux 下设计并发网络程序,有多种模型:如典型的 Apache 模型( Process Per Connect... 阅读全文

posted @ 2014-09-23 14:55 三少爷的剑123 阅读(171) 评论(0) 推荐(0) 编辑

Android WebView播放视频flash(判断是否安装flash插件)
摘要:Android WebView播放flash(判断是否安装flash插件) 最近帮一个同学做一个项目,断断续续的一些知识点记录一下。一个页面中有一个WebView,用来播放swf,如果系统中未安装flash插件,必须提示用户到market中安装。 下面做一个demo,效果图如下: ... 阅读全文

posted @ 2014-09-17 16:18 三少爷的剑123 阅读(401) 评论(0) 推荐(0) 编辑

创建一个三维数组
摘要:题目:创建一个三维数组,4*4*4个元素,数字随机生成,找出每行最大的数,每面最大的数,以及整个数组中最大的数的地址,具体实现如下:#include#include#includevoid PrintMaxValByIndex(int(*pData)[4][4], int nRows){ int ... 阅读全文

posted @ 2014-09-15 00:07 三少爷的剑123 阅读(562) 评论(0) 推荐(0) 编辑

随机生成1024个数,用指针进行排序,并实现二分查找
摘要:题目:随机生成1024个数,用指针进行排序,并实现二分查找,具体实现如下:#include#includeint SortByPtr(int * pInput, int nLen){ if (!pInput) { return 0; } int * pCur = pInput; int * pE... 阅读全文

posted @ 2014-09-15 00:04 三少爷的剑123 阅读(262) 评论(0) 推荐(0) 编辑

随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址
摘要:题目:随机生成1024个数,存入一段内存,用指针实现获取1024个数的最大数地址,最小数地址,具体实现如下:#include#include#includeint FindMaxMinByIndex(int * pInput, int nLen, int ** ppMax, int ** ppMi... 阅读全文

posted @ 2014-09-14 23:59 三少爷的剑123 阅读(224) 评论(0) 推荐(0) 编辑

实现一个计算器
摘要:题目:实现一个计算器,创建两个变量a,b,以及操作字符,实现输入“+”,执行加法,‘-’,执行减法,以此类推,有一个综合函数处理输入,有加减乘除求余5种运算,请用函数指针实现,以及函数指针作为参数来实现,具体实现如下:#include#includetypedef int(*FunPtr)(int... 阅读全文

posted @ 2014-09-14 23:48 三少爷的剑123 阅读(190) 评论(0) 推荐(0) 编辑

有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a
摘要:题目:有两个指针pa,pb分别指向有两个数,a,b,请写一个函数交换两个指针的指向,也就是让pa指向b,让pb指向a,具体实现如下:#include #include int swap_ptr(int ** pA, int ** pB) { if (pA == NULL || pB ==... 阅读全文

posted @ 2014-09-14 23:43 三少爷的剑123 阅读(304) 评论(0) 推荐(0) 编辑

有两个数a,b,请写一个函数交换a,b
摘要:题目:有两个数a,b,请写一个函数交换a,b,具体实现如下:#include#includeint swap(int * pA, int * pB){ if (pA == NULL || pB == NULL) { return 0; } int nTemp = *pA; *pA = *pB; ... 阅读全文

posted @ 2014-09-14 23:40 三少爷的剑123 阅读(139) 评论(0) 推荐(0) 编辑

开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在
摘要:题目:开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在。具体实现如下:#include #include #include int find(int * pInput, int nLen, int nKey, int * pOut){ if (!pInp... 阅读全文

posted @ 2014-09-14 23:35 三少爷的剑123 阅读(188) 评论(0) 推荐(0) 编辑

生成一个一维数组,有10个元素,都用随机数填充,用指针轮询的办法实现函数查找一个数是否存在。
摘要:题目:生成一个一维数组,有10个元素,都用随机数填充,用指针轮询的办法实现函数查找一个数是否存在,具体实现代码如下:#include #include #include int find(int * pInput, int nLen, int nKey, int * pOut){ if (!pI... 阅读全文

posted @ 2014-09-14 23:28 三少爷的剑123 阅读(357) 评论(0) 推荐(0) 编辑

随机生成3个数,创建3个指针指向这3个数,不改变这3个数,从大到小显示。
摘要:题目:随机生成3个数,创建3个指针指向这3个数,不改变这3个数,从大到小显示,具体实现如下:#include#include#includevoid main(){ int a = 0; int b = 0; int c = 0; srand(time(NULL)); a = 3; //rand(... 阅读全文

posted @ 2014-09-14 23:24 三少爷的剑123 阅读(224) 评论(0) 推荐(0) 编辑

在一个字符串中找到第一个只出现一次的字符
摘要:题目:在一个字符串中找到第一个只出现一次的字符,如输入abaccdeff,则输出b;具体实现如下:#include #include using namespace std;void FindChar(const string &strBuf){ int nArr[256]; //ASCI... 阅读全文

posted @ 2014-09-14 22:52 三少爷的剑123 阅读(205) 评论(0) 推荐(0) 编辑

输入一颗二元树,从上向下按层打印树的每个节点,同一层中,按照从左到右的顺序打印。
摘要:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印,具体实现如下:#include using namespace std;typedef struct BSTNode{ int nValue; struct BSTNode *pLChild; struct BSTNod... 阅读全文

posted @ 2014-09-14 22:42 三少爷的剑123 阅读(138) 评论(0) 推荐(0) 编辑

输入一个单向链表,输出该链表中倒数第K个结点
摘要:输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下:#include using namespace std;struct LinkNode{public: LinkNode(int value = 0) : nValue(value){ pNext = NULL; } ~Link... 阅读全文

posted @ 2014-09-14 22:34 三少爷的剑123 阅读(274) 评论(0) 推荐(0) 编辑

查找最小的K个元素,使用最大堆。
摘要:查找最小的K个元素,使用最大堆,具体代码如下:#define _CRT_SECURE_NO_WARNINGS #include using namespace std; void swap(int *a, int *b) { int temp; temp = *a; *... 阅读全文

posted @ 2014-09-14 22:25 三少爷的剑123 阅读(230) 评论(0) 推荐(0) 编辑

判断整数序列是不是二元查找树的后序遍历结果
摘要:题目:输入一个整数数组,判断该数组是不是二元查找树的后序遍历结果,如果是,返回true,否则返回假,具体实现如下:#include using namespace std;//搜索树后序遍历数组最后一个是根,从数组头到第一个比根大的节点是左孩子,后面右孩子必须全大于根,递推static bool ... 阅读全文

posted @ 2014-09-14 22:12 三少爷的剑123 阅读(132) 评论(0) 推荐(0) 编辑

链队
摘要:今天,我们一起用C++写一个链对,具体如下所示。LinkQueue.h具体内容如下:#include "QueueNode.h"template class LinkQueue{public: LinkQueue() :m_prear(NULL), m_pfront(NULL){} ~Li... 阅读全文

posted @ 2014-09-14 18:34 三少爷的剑123 阅读(135) 评论(0) 推荐(0) 编辑

链栈
摘要:今天,我们一起用C++写链栈,具体如下。LinkStack.h具体内容:#include "StackNode.h"template class LinkStack{public: LinkStack() :m_ptop(NULL){} ~LinkStack(){ MakeEmpty()... 阅读全文

posted @ 2014-09-14 18:24 三少爷的剑123 阅读(112) 评论(0) 推荐(0) 编辑

基数排序
摘要:今天,我们一起用C++实现基数排序,具体代码如下:Data.h具体内容如下:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = item; }public: ... 阅读全文

posted @ 2014-09-14 18:11 三少爷的剑123 阅读(115) 评论(0) 推荐(0) 编辑

合并排序
摘要:今天,我们的目标就是一起用C++实现合并排序,具体代码如下。Data.h具体内容:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = item; }publi... 阅读全文

posted @ 2014-09-14 18:01 三少爷的剑123 阅读(89) 评论(0) 推荐(0) 编辑

堆排序
摘要:今天,我们一起用C++实现堆排序,目的是熟练C++的语法,具体代码如下。Data.h具体内容如下:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = item... 阅读全文

posted @ 2014-09-14 17:46 三少爷的剑123 阅读(91) 评论(0) 推荐(0) 编辑

选择排序
摘要:今天,我们一起用C++实现一个选择排序,帮助大家熟练C++的语法,具体内容如下:Data.h的内容:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = it... 阅读全文

posted @ 2014-09-14 17:39 三少爷的剑123 阅读(120) 评论(0) 推荐(0) 编辑

冒泡排序
摘要:今天,我们一起用C++写一个冒泡排序,目的就是通过不断地实践来熟练C++,具体代码如下:Data.h具体内容:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key ... 阅读全文

posted @ 2014-09-14 17:22 三少爷的剑123 阅读(159) 评论(0) 推荐(0) 编辑

希尔排序
摘要:今天,我们一起用C++实现希尔排序,具体的代码如下:Data.h内容如下:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = item; }public: E... 阅读全文

posted @ 2014-09-14 17:12 三少爷的剑123 阅读(129) 评论(0) 推荐(0) 编辑

二分插入排序
摘要:今天,我们一起用C++实现二分插入排序,具体如下。Data.h具体内容:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = item; }public: El... 阅读全文

posted @ 2014-09-14 17:02 三少爷的剑123 阅读(102) 评论(0) 推荐(0) 编辑

插入排序
摘要:今天,我们一起来实现插入排序,具体如下:Data.h内容:template class Element{public: Type GetKey(){ return key; } void SetKey(Type item){ key = item; }public: Element& ... 阅读全文

posted @ 2014-09-14 16:54 三少爷的剑123 阅读(97) 评论(0) 推荐(0) 编辑

摘要:今天,我们一起用C++写一颗树,目的是熟练C++的语法细节,具体如下:LinkQueue.h内容如下:#include "QueueNode.h"template class LinkQueue{public: LinkQueue() :m_prear(NULL), m_pfront(NU... 阅读全文

posted @ 2014-09-14 16:34 三少爷的剑123 阅读(139) 评论(0) 推荐(0) 编辑

双链表
摘要:今天,我们一起用C++写一个双链表,具体代码如下:DoubleList.h具体内容如下:#include "NodeList.h"template class DoublyList{public: DoublyList() :head(new ListNode()){ //the h... 阅读全文

posted @ 2014-09-14 16:24 三少爷的剑123 阅读(116) 评论(0) 推荐(0) 编辑

顺序表
摘要:为了加深大家对C++的理解,我们还是继续通过实践的方式,今天,我们一起写一个顺序表,具体代码如下。Seqlist.h具体内容如下:const int DefaultSize = 100;template class SeqList{public: SeqList(int sz = De... 阅读全文

posted @ 2014-09-14 16:17 三少爷的剑123 阅读(144) 评论(0) 推荐(0) 编辑

顺序队列
摘要:今天,我们一起实现一个顺序队列,通过它来熟练一下C++编程。SeqQueue.h具体内容如下:template class SeqQueue{public: SeqQueue(int sz) :m_nrear(0), m_nfront(0), m_ncount(0), m_nMaxSize... 阅读全文

posted @ 2014-09-14 16:03 三少爷的剑123 阅读(104) 评论(0) 推荐(0) 编辑

顺序栈
摘要:今天,我们一起用C++写一个顺序栈,具体如下:SeqStack.h具体内容如下:template class SeqStack{public: SeqStack(int sz) :m_ntop(-1), m_nMaxSize(sz){ m_pelements = new Type[sz]... 阅读全文

posted @ 2014-09-14 15:58 三少爷的剑123 阅读(129) 评论(0) 推荐(0) 编辑

摘要:今天,我们一起来实践一下数据结构-图,具体实现代码如下:Edge.h具体内容如下:template struct Edge{public: Edge(int dest, DistType cost) : m_ndest(dest), m_cost(cost), m_pnext(NULL){... 阅读全文

posted @ 2014-09-14 15:52 三少爷的剑123 阅读(115) 评论(0) 推荐(0) 编辑

线索二叉树
摘要:今天,我们一起用C++实现一颗线索二叉树,具体代码如下:ThreadInorderIterator.h具体内容如下:#include "ThreadTree.h"template class ThreadInorderIterator{public: ThreadInorderIterat... 阅读全文

posted @ 2014-09-14 15:44 三少爷的剑123 阅读(107) 评论(0) 推荐(0) 编辑

优先级队列
摘要:今天,我们的任务是实现一个优先级队列。具体实现如下:Compare.h具体内容如下:#include using namespace std;template class Compare{ //处理一般比较大小public: static bool lt(Type item1, Type ... 阅读全文

posted @ 2014-09-14 15:30 三少爷的剑123 阅读(103) 评论(0) 推荐(0) 编辑

在二元树中找出和为某一值的所有路径
摘要:具体实现代码如下:BSTree.h具体内容:#ifndef _BSTREE_H_#define _BSTREE_H_typedef struct _tagBSTreeNode{ int m_nVal; _tagBSTreeNode * m_pLeft; _tagBSTreeNode * m... 阅读全文

posted @ 2014-09-14 15:08 三少爷的剑123 阅读(133) 评论(0) 推荐(0) 编辑

定义一个栈的数据结构,要求实现一个min函数,每次能够得到栈的最小值,并且要求Min的时间复杂度为O(1)
摘要:具体实现代码如下:stack.h内容如下:#ifndef _STACK_H_#define _STACK_H_#define NUM 256typedef struct _tagStack{ int m_Array[NUM]; int m_nTop;}Stack;void InitStac... 阅读全文

posted @ 2014-09-14 15:03 三少爷的剑123 阅读(221) 评论(0) 推荐(0) 编辑

求一个整数数组中的所有子数组的最大和
摘要:今天,我们一起做一个题目,即求出一个整数数组中的所有子数组的最大和。//求一个整数数组中的所有子数组的最大和 #include #include int GetMaxChildArraySum(int * pInput, int nLen, int * pOut) { if (... 阅读全文

posted @ 2014-09-14 14:56 三少爷的剑123 阅读(177) 评论(0) 推荐(0) 编辑

第2个Wiindows程序讲解
摘要:上次,我们一起写了一个Windows窗口程序,这个窗口程序虽然非常简单,但是,代码仍然很多,相信,一定会有很多初学者看见这些代码而感到头疼。不用怕,现在,我们就一起来分析一下这些代码,相信通过我们共同的努力,一定可以克服这些难题。 首先,我们要做的第一件事情就是包含windows.... 阅读全文

posted @ 2014-09-14 14:19 三少爷的剑123 阅读(245) 评论(0) 推荐(0) 编辑

我们的第二个程序
摘要:上次,我们在第一个Windows程序中,弹出了一个对话框,对话框是Windows窗口中的一种,但是,这个对话框不是我们自己写的,而是微软写的,并将它封装在Usr32.dll中,供我们使用,相信,很多人在想,如何自己写一个窗口吧,今天,我会让你们如愿以偿,我们今天的目标就是一起写一个wind... 阅读全文

posted @ 2014-09-14 12:02 三少爷的剑123 阅读(165) 评论(0) 推荐(0) 编辑

第一个Windows程序讲解
摘要:上次,我们一起写了第一个Windows程序,虽然程序非常简单,但是它却可以帮助大家建立学好windows开发的信心。 今天,就让我帮助大家分析一下这个程序的内容。首先,我们的程序包含了一个头文件:windows.h,这个头文件包含了Windows下开发需要的所有结构体,宏和API的声... 阅读全文

posted @ 2014-09-14 11:45 三少爷的剑123 阅读(214) 评论(0) 推荐(0) 编辑

第一个Windows程序
摘要:今天,我们的任务就是和大家一起开发第一个Windows程序,这个程序的功能非常简单,就是弹出一个对话框,但是简单的程序可以帮助大家建立信心。例1 第一个Windows程序/* *************************************《windows程序设计快速入门》* 示... 阅读全文

posted @ 2014-09-14 11:04 三少爷的剑123 阅读(184) 评论(0) 推荐(0) 编辑

windows程序设计简介
摘要:大家好,非常高兴和大家一起分享Windows开发心得,Windows已经诞生很多年了,一直因为它的简单易用而深受欢迎,相信很多人在使用Windows的时候,一定有这样一个想法:希望自己将来可以写一个很受欢迎的Windows程序,像QQ,迅雷,鲁大师一样,深受大家喜爱的软件,无论你的初衷是什... 阅读全文

posted @ 2014-09-14 10:50 三少爷的剑123 阅读(321) 评论(0) 推荐(0) 编辑

使用 CustomScript 扩展程序自动执行 Linux 虚拟机自定义任务
摘要:NingKuangWSSC WS ARD 高级项目经理 您可能已经从Windows扩展程序博客中了解了针对 Windows 虚拟机的 CustomScript扩展程序,现在的好消息是,这一扩展程序也已面向 Linux虚拟机提供。 在上一篇博客中还介绍了 cloud-init,通过 cl... 阅读全文

posted @ 2014-09-12 11:32 三少爷的剑123 阅读(259) 评论(0) 推荐(0) 编辑

使用 VMAccess 扩展程序重置 Linux 虚拟机的登录凭据
摘要:Ning KuangWSSC WS ARD高级项目经理 您是否曾经因为忘记 Azure VM 密码或 SSH密钥而导致无法访问 VM?VMAccess扩展程序使您可以重置密码、SSH密钥或 SSH配置,以便重新获得访问权限。 此扩展程序针对 Linux VM。对于 Wind... 阅读全文

posted @ 2014-09-12 10:57 三少爷的剑123 阅读(251) 评论(0) 推荐(0) 编辑

Qt入门(7)——QApplication类
摘要:QApplication类管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,在其中来自窗口系统和其它资源的所有事件被处理和调度。也用于处理应用程序的初始化和结束,并且提供对话管理。它也处理绝大多数系统范围和应用程序范围的设置。任何一个使用Qt的图形界面的程序,都都必须有一个QAppli... 阅读全文

posted @ 2014-09-11 17:32 三少爷的剑123 阅读(631) 评论(0) 推荐(0) 编辑

用模板写哈夫曼编码
摘要:今天,我们一起使用模板来写一个哈夫曼编码类,具体如例1所示。例1 对下面字符进行编码,使其总体长度最短。字母={A,B,C,D,E},频率={15,7,6,6,5},字母和频率一一对应。分析:解决这道题目的方法是使用哈夫曼编码,哈夫曼编码利用哈夫曼树构造前缀编码,使文本总体长度最短。具体实... 阅读全文

posted @ 2014-09-10 18:14 三少爷的剑123 阅读(212) 评论(0) 推荐(0) 编辑

spring framework 4 源码阅读
摘要:前面写了几篇spring 的介绍文章,感觉与主题不是很切合。重新整理下思路,从更容易理解的角度来写下文章。 spring 的骨架 spring 的骨架,也是spring 的核心包。主要包含三个内容 1.context:spring 的上线文-------导演 2.core:spring的核心... 阅读全文

posted @ 2014-09-10 16:32 三少爷的剑123 阅读(144) 评论(0) 推荐(0) 编辑

浮点类型
摘要:在C++中,小数用浮点类型来表示。浮点类型主要有3种,float、double、long double,它们主要的差别是数据的表示范围不同。C++标准指定了一个浮点数有效位数的最小值,然而大多数编译器都实现了更高的精度。通常,float用32位来表示,double用64位来表示,long ... 阅读全文

posted @ 2014-09-09 19:02 三少爷的剑123 阅读(263) 评论(0) 推荐(0) 编辑

把二元查找树转变成排序的双向链表
摘要:题目: 输入一颗二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 转换成双向链表4=6=8=10=12=14=16首先,我们定义的二元查找树结点的数据结构如下:struct BSTreeNode{ int m_nValue; BSTr... 阅读全文

posted @ 2014-09-09 17:18 三少爷的剑123 阅读(175) 评论(0) 推荐(0) 编辑

用模板写快速排序-链表
摘要:上次,我们一起用模板写了数组的快速排序,今天,我们再看看如何用模板写链表的快速排序,具体如例1所示。例1 快速排序-链表ListQuickSort.hpp内容:#ifndef _LIST_QUICK_SORT_H_#define _LIST_QUICK_SORT_H_templatestr... 阅读全文

posted @ 2014-09-09 13:06 三少爷的剑123 阅读(124) 评论(0) 推荐(0) 编辑

用模板写快速排序-数组
摘要:今天,我们继续用模板写代码,不断加深模板的熟练程度,今天,我们一起来写一个快速排序,具体如例1所示:例1 快速排序-数组ArrayQuickSort.hpp内容:#ifndef _ARRAY_QUICK_SORT_H_#define _ARRAY_QUICK_SORT_H_template... 阅读全文

posted @ 2014-09-09 10:35 三少爷的剑123 阅读(195) 评论(0) 推荐(0) 编辑

用模板写选择排序-链表
摘要:今天,我们一起用模板来写一个选择排序,熟练对模板的使用,具体如例1所示。例1 选择排序-链表ListSelectSort.hpp内容:#ifndef _LIST_SELECT_SORT_H_#define _LIST_SELECT_SORT_H_templatestruct Node{ T... 阅读全文

posted @ 2014-09-06 16:06 三少爷的剑123 阅读(156) 评论(0) 推荐(0) 编辑

用模板写选择排序-数组
摘要:今天,我们一起来写选择排序,主要是熟悉模板编程,具体如例1所示。例1 选择排序-数组SelectSort.hpp内容:#ifndef _SELECT_SORT_H_#define _SELECT_SORT_H_templatebool SelectSort(T * pInput, int ... 阅读全文

posted @ 2014-09-06 15:39 三少爷的剑123 阅读(200) 评论(0) 推荐(0) 编辑

用模板写冒泡排序-链表
摘要:大家好,今天继续模板实战编程,我们今天的目标是用模板写一个针对链表的冒泡排序算法,具体如例1所示。例1 冒泡排序-链表ListBubbleSort.hpp的内容:#ifndef _LIST_BUBBLE_SORT_H_ #define _LIST_BUBBLE_SORT_H_ #inclu... 阅读全文

posted @ 2014-09-06 13:31 三少爷的剑123 阅读(167) 评论(0) 推荐(0) 编辑

用模板写冒泡排序-数组
摘要:今天,我们一起来写一个冒泡排序,仍然使用模板。例1 用模板写冒泡排序-数组ArrayBubbleSort.hpp内容:#ifndef _ARRAY_BUBBLE_SORT_H_#define _ARRAY_BUBBLE_SORT_H_templatebool BubbleSort(T * ... 阅读全文

posted @ 2014-09-06 12:56 三少爷的剑123 阅读(154) 评论(0) 推荐(0) 编辑

用模板写插入排序-链表
摘要:今天,我们共同写一个针对链表的插入排序算法,为了加深对模板的体会,这里使用函数模板机制,具体如例1所示。例1 插入排序-链表ListInsertSort.hpp内容:#ifndef _LIST_INSERT_SORT_H_#define _LIST_INSERT_SORT_H_#inclu... 阅读全文

posted @ 2014-09-06 11:47 三少爷的剑123 阅读(145) 评论(0) 推荐(0) 编辑

用模板写插入排序-数组
摘要:为了熟练模板的使用,今天,我们共同来写一个针对数组的插入排序算法,为了实现算法与数据类型相分离,我们这里采用函数模板的机制,具体如例1所示。例1 数组插入排序ArrayInsertSort.hpp内容:#ifndef _ARRAY_INSERT_SORT_H_#define _ARRAY_... 阅读全文

posted @ 2014-09-06 10:32 三少爷的剑123 阅读(295) 评论(0) 推荐(0) 编辑

整数类型
摘要:C++中提供的整数类型有三种:int、long、short,每种类型又分为有符号和无符号两种类型。有符号整数既可以表示非负整数,又可以表示负整数;但是,无符号整数不能表示负数,只能表示非负整数。(一)无符号整数 在内存中,int整数通常占4字节,这里,我们假定int为32位,那么无符... 阅读全文

posted @ 2014-09-05 19:40 三少爷的剑123 阅读(566) 评论(0) 推荐(0) 编辑

用模板写单链表
摘要:为了加深对模板的理解,我们今天一起用模板写一个单链表,希望通过这个例子,能够帮助大家加深对模板的体会,具体如下:SList.hpp内容:#ifndef _SLIST_H_#define _SLIST_H_#include using namespace std;templatestruct... 阅读全文

posted @ 2014-09-05 16:04 三少爷的剑123 阅读(95) 评论(0) 推荐(0) 编辑

Qt入门(6)——Qt的界面布局
摘要:Qt提供四种布局: VBoxLayout:垂直布局HBoxLayout:水平布局GridLayout:二维布局。FormLayout: 窗体布局 水平布局管理器可以把它所管理的部件以水平的顺序依次排开,例如上图中中间的“Centigrade”和“Fahrenheit”两段文字,就是水平排列的,这个... 阅读全文

posted @ 2014-09-04 11:30 三少爷的剑123 阅读(398) 评论(0) 推荐(0) 编辑

Qt入门(5)——用Qt控件创建一个电话本界面
摘要:具体实现步骤:一、首先用 Qt Designer 创建一个两张图的对话框,分别保存为listdialog.ui和editdialog.ui文件要注意其中各个空间对应的名称修改好二、新建一个Qt应用程序工程,取名为listdialog三、删除已有的listdialog.ui和ui_listdial... 阅读全文

posted @ 2014-09-04 10:53 三少爷的剑123 阅读(265) 评论(0) 推荐(0) 编辑

Qt入门(4)——Qt常见控件
摘要:Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求。我们将对这些控件和对话框作一个大概的介绍。1. QLabel定义QLabel* m_labelOrdered = newQLabel("0", this);对文字的左右对齐设置m_labelOrdered->setAlignment(... 阅读全文

posted @ 2014-09-04 10:48 三少爷的剑123 阅读(535) 评论(0) 推荐(0) 编辑

Qt入门(3)——信号和槽
摘要:信号和槽用于对象间的通讯。信号/槽机制是Qt的一个中心特征并且也许是Qt与其它工具包的最不相同的部分。在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一个窗口部件。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。例如,如果我们正在解析一个XML文件,当我们遇到一个新的标签... 阅读全文

posted @ 2014-09-04 10:44 三少爷的剑123 阅读(200) 评论(0) 推荐(0) 编辑

Qt入门(2)——使用Qt编写的Hello world
摘要:对于一个qt初学者来说,一步一步来直到作出一个hello world是最基础的入门。从菜单:应用程序->编程中找到QtCreator 打开QtCreator 文件->新建文件或工程…… ,选择 其他项目->空的Qt项目,点击 chooes 按钮。 在下图名称处,输入工程名称 helloworl... 阅读全文

posted @ 2014-09-04 10:40 三少爷的剑123 阅读(302) 评论(0) 推荐(0) 编辑

Qt入门(1)——初识Qt
摘要:Qt是一个跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。Qt很容易扩展,并... 阅读全文

posted @ 2014-09-04 10:35 三少爷的剑123 阅读(303) 评论(0) 推荐(0) 编辑

Linux系统编程(37)—— socket编程之原始套接字
摘要:原始套接字的特点 原始套接字(SOCK_RAW)可以用来自行组装IP数据包,然后将数据包发送到其他终端。也就是说原始套接字是基于IP数据包的编程(SOCK_PACKET是基于数据链路层的编程)。另外,必须在管理员权限下才能使用原始套接字。原始套接口提供了普通TCP和UDP socket不能提供的... 阅读全文

posted @ 2014-09-04 08:03 三少爷的剑123 阅读(696) 评论(1) 推荐(0) 编辑

Linux系统编程(37)—— socket编程之UDP服务器与客户端
摘要:典型的UDP客户端/服务器通讯过程: 编写UDP Client程序的步骤1、初始化sockaddr_in结构的变量,并赋值。这里使用“8888”作为连接的服务程序的端口,从命令行参数读取IP地址,并且判断IP地址是否符合要求。2、使用socket()来建立一个UDPsocket,第二个参数为... 阅读全文

posted @ 2014-09-04 07:58 三少爷的剑123 阅读(192) 评论(0) 推荐(0) 编辑

Linux系统编程(36)—— socket编程之UDP详解
摘要:UDP 是User DatagramProtocol的简称,中文名是用户数据报协议。UDP协议不面向连接,也不保证传输的可靠性,例如: 1、发送端的UDP协议层只管把应用层传来的数据封装成段交给IP协议层就算完成任务了,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息... 阅读全文

posted @ 2014-09-04 07:57 三少爷的剑123 阅读(379) 评论(1) 推荐(0) 编辑

Linux系统编程(35)—— socket编程之TCP服务器的并发处理
摘要:我们知道,服务器通常是要同时服务多个客户端的,如果我们运行上一篇实现的server和client之后,再开一个终端运行client试试,新的client就不能能得到服务了。因为服务器之支持一个连接。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端... 阅读全文

posted @ 2014-09-04 07:52 三少爷的剑123 阅读(295) 评论(0) 推荐(0) 编辑

Linux系统编程(33)—— socket编程之TCP程序的错误处理
摘要:上一篇的例子不仅功能简单,而且简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功,必须进行出错处理,这样一方面可以保证程序逻辑正常,另一方面可以迅速得到故障信息。 为使错误处理的代码不影响主程序的可读性,我们把与socket相关的一些系统函数加上错误处理代码包装成新的函数,做成一个模... 阅读全文

posted @ 2014-09-04 07:49 三少爷的剑123 阅读(494) 评论(0) 推荐(0) 编辑

Linux系统编程(34)—— socket编程之TCP服务器与客户端的交互
摘要:前面几篇中实现的client每次运行只能从命令行读取一个字符串发给服务器,再从服务器收回来,现在我们把它改成交互式的,不断从终端接受用户输入并和server交互。 /* client.c */#include #include #include #include #include "wrap.h"... 阅读全文

posted @ 2014-09-04 07:49 三少爷的剑123 阅读(157) 评论(0) 推荐(0) 编辑

Linux系统编程(32)—— socket编程之TCP服务器与客户端
摘要:TCP协议的客户端/服务器程序的一般流程 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收... 阅读全文

posted @ 2014-09-04 07:47 三少爷的剑123 阅读(359) 评论(0) 推荐(0) 编辑

Linux系统编程(31)—— socket编程之TCP详解
摘要:TCP有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。32位序号、32位确认序号、窗口大小稍后详细解释。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。URG、ACK、PSH、... 阅读全文

posted @ 2014-09-04 07:39 三少爷的剑123 阅读(163) 评论(0) 推荐(0) 编辑

Linux系统编程(30)—— socket编程之TCP/IP协议
摘要:在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。于是人们就想方设... 阅读全文

posted @ 2014-09-04 07:38 三少爷的剑123 阅读(127) 评论(0) 推荐(0) 编辑

Linux系统编程(29)——线程间同步(续篇)
摘要:线程间的同步还有这样一种情况:线程A需要等某个条件成立才能继续往下执行,现在这个条件不成立,线程A就阻塞等待,而线程B在执行过程中使这个条件成立了,就唤醒线程A继续执行。在pthread库中通过条件变量(Condition Variable)来阻塞等待一个条件,或者唤醒等待这个条件的线程。Cond... 阅读全文

posted @ 2014-09-04 01:02 三少爷的剑123 阅读(121) 评论(0) 推荐(0) 编辑

Linux系统编程(28)——线程间同步
摘要:多个线程同时访问共享数据时可能会冲突,这跟前面讲信号时所说的可重入性是同样的问题。比如两个线程都要把某个全局变量增加1,这个操作在某平台需要三条指令完成: 从内存读变量值到寄存器寄存器的值加1将寄存器的值写回内存 假设两个线程在多处理器平台上同时执行这三条指令,则可能导致下图所示的结果,最后变量只... 阅读全文

posted @ 2014-09-04 00:53 三少爷的剑123 阅读(134) 评论(0) 推荐(0) 编辑

Linux系统编程(27)——线程控制
摘要:进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,那么如何在一个进程的地址空间中执行多个线程呢。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用户交互,等待和处理用户的鼠标键盘事件,另一方面又需要同... 阅读全文

posted @ 2014-09-04 00:51 三少爷的剑123 阅读(146) 评论(0) 推荐(0) 编辑

Linux系统编程(26)——守护进程
摘要:Linux系统启动时会启动很多系统服务进程,比如inetd,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。 下面我们用ps ... 阅读全文

posted @ 2014-09-04 00:49 三少爷的剑123 阅读(199) 评论(0) 推荐(0) 编辑

Linux系统编程(25)——终端
摘要:在Linux系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端。控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错... 阅读全文

posted @ 2014-09-04 00:46 三少爷的剑123 阅读(159) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(30)——通过查阅RFC文档扩充更加复杂的功能
摘要:HTTP是一种很简单的请求、响应式协议,客户端发送一个请求、服务器返回一个响应。HTTP 1.1 版本规范由 RFC2616 定义。了解了 HTTP请求、响应消息在TCP数据流中的格式,很容易使用纯 socket 模拟HTTP客户端、HTTP服务器发送接收数据。 RFC文档全是ASCII码,tx... 阅读全文

posted @ 2014-09-04 00:43 三少爷的剑123 阅读(153) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(29)——遵守robots.txt
摘要:Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。robots.txt文件是一个文本文件。robots.txt是搜索引擎中访问网站的时候要查看的... 阅读全文

posted @ 2014-09-04 00:27 三少爷的剑123 阅读(158) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(28)——爬虫socket处理
摘要:Socket是进程之间交换数据的机制。这些进程即可以是同一台机器上的,也可以是通过网络连接起来的不同机器。一旦一个Socket连接建立,那么数据就能够双向传输,直到其中一端关闭连接。 通常,请求数据的应用程序叫做客户端Client,而为请求服务叫做服务器Server。基本上说,首先,服务器监听一个... 阅读全文

posted @ 2014-09-04 00:27 三少爷的剑123 阅读(239) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(27)——多路IO复用
摘要:与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程。主要应用:(1)客户程序需要同时处理交互式的输入和服务器之间的网络连接(2)客户端需要对多个网络连接作出反应(3)TCP服务器需要同时处理多个处于监听状态和多个连接状态的套接字(... 阅读全文

posted @ 2014-09-04 00:26 三少爷的剑123 阅读(156) 评论(0) 推荐(0) 编辑

Linux企业级项目实践之网络爬虫(26)——线程池
摘要:一旦有一个抓取请求开始,就创建一个新的线程,由该线程执行任务,任务执行完毕之后,线程就退出。这就是"即时创建,即时销毁"的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数非常频繁,那么服务器就将处于一个不停的创建线程和销毁线程的状态。这笔... 阅读全文

posted @ 2014-09-04 00:22 三少爷的剑123 阅读(176) 评论(0) 推荐(0) 编辑

初识数据类型
摘要:数据类型是计算机理解数据的方式,因为在计算机中,所有的数据都是二进制,所以对于一个32位的二进制有多种理解方式,那么计算机该按照哪种方式来理解呢?这取决于我们定义时的类型,这个类型就是数据类型,它决定了计算机对二进制数据的理解方式,也决定了可以对这个数据进行哪种操作? 在我们这个系列... 阅读全文

posted @ 2014-09-03 11:18 三少爷的剑123 阅读(137) 评论(0) 推荐(0) 编辑

USENIX 最佳论文奖:擦除 Windows Azure 存储编码
摘要: 我们发表了一篇介绍Windows Azure 存储如何用编码方式擦除数据的论文,此论文在 2012 年 6 月的 USENIX 技术年会上荣获最佳论文奖。这是 MicrosoftResearch 和 Windows Azure 存储团队共同努力的成果。 您可以在此处找到此论文。 ... 阅读全文

posted @ 2014-09-02 09:44 三少爷的剑123 阅读(139) 评论(0) 推荐(0) 编辑

将大型 Page Blob 的页范围进行分段
摘要: Windows Azure 存储支持一种 Blob 类型,即 Page Blob。Page Blob 通过仅将已写入但未清除的页存入物理存储, 来有效存储稀疏数据。每页大小为 512 字节。Get Page Ranges REST 服务调用将返回包含有效数据的所有连续页范围的列表。在... 阅读全文

posted @ 2014-09-02 09:40 三少爷的剑123 阅读(104) 评论(0) 推荐(0) 编辑

价格更低、SLA 更强的全新 Azure SQL 数据库服务等级将于 9 月正式发布
摘要:继上周公告之后,很高兴向大家宣布更多好消息,作为我们更广泛的数据平台的一部分, 我们将在 Azure 上提供丰富的在线数据服务。9 月,我们将针对 Azure SQL 数据库推出新的服务等级。Azure SQL 数据库是我们的数据库即服务,能使客户的云应用程序获得更高性价比和业务连续性。... 阅读全文

posted @ 2014-09-02 09:33 三少爷的剑123 阅读(167) 评论(0) 推荐(0) 编辑

把二元查找树转换成排序的双向链表
摘要:题目:输入一颗二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整指针的指向。例如,将图1中的二叉搜索树转换成一个排序的双向链表:4=6=8=10=12=14=16。图1 二叉搜索树 我们先来看一下这个题目该如何求解,然后再给出相应的源码。首先题目要... 阅读全文

posted @ 2014-09-02 06:44 三少爷的剑123 阅读(142) 评论(0) 推荐(0) 编辑

初识C++
摘要:任何一个有实际价值的程序都有4部分构成:输入,输出,控制语句,数据定义语句;今天,我们就从这四个方面入手,让大家对C++有一个整体的认识。(一) 输入输出 C++和其它语言一样,也有自己的输入输出方式。现在,我们就来了解一下,在C++中如何进行输入输出控制。 1、标准输入输出对... 阅读全文

posted @ 2014-09-02 05:20 三少爷的剑123 阅读(145) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示