- 博客(26)
- 收藏
- 关注
原创 基本的排序算法
#include using namespace std;//测试的数组int a[]={13,2,3,5,67,2,10,7,11,20,45,32,1,6,9,4,21,30,14,8};int b[]={4,2,1};/*打印数组*/void ArrayPrint(int array[],int size){ int i; for(i=0;i<si
2013-09-26 21:30:12 593
原创 linux编程主题之线程
每个线程有一个线程ID,线程ID只在它所属的进程环境中有效。可以使用函数来对两个线程ID进行比较: int pthread_equal(pthread_t tid1, pthread_t tid2); 线程可以获取自身的线程ID: pthread_t pthread_self(void); 线程创建: int pthread_create(pt
2013-09-21 16:31:24 790
原创 linux编程主题之进程
首先,关于进程的三个用户ID。实际用户ID、有效用户ID、保存设置用户ID。 实际用户ID:进程执行者的ID。 有效用户ID:如果进程对应的程序文件设置了设置用户ID,则为程序文件所有者的ID。 保存设置用户ID:有效用户ID的副本。 这里还有设置用户ID的概念,设置用户ID是针对程序文件来说的,设置了设置用户ID的程序文件,在执行这个文件时,进程的有效用户ID
2013-09-15 20:16:32 600
原创 linux编程主题之标准I/O与高级I/O
对于标准I/O库,它们的操作是围绕流进行的。当用标准I/O库打开或创建一个文件时,我们已使一个流与一个文件相关联。 对一个进程预定义了三个流,并且这三个流可以自动地被进程使用,它们是:标准输入、标准输出和标准出错,对应的文件指针分别为stdin、stdout和stderr。 为了减少使用read和write的调用的次数,标准I/O库提供了三种类型的缓冲机制,分别为全缓冲、行缓冲和不带缓
2013-09-14 21:52:09 658
原创 linux忘记root密码的挽救措施
有时候会碰到这样一种情况,很久没有登录linux偶尔想进入linux结果却发现最重要的root密码竟然忘记了。遇到这种情况不需要重新安装系统,只需要以单人维护模式登录即可更改root密码了。具体步骤如下。 1、启动系统,在读秒的时候按下任意键出现选单画面 2、按下"e"进入grub的编辑模式,会出现几行文字信息 3、将光标移动到kernel那一行,再按一次"e"进入该
2013-05-24 09:42:11 693
原创 linux shell使用gmond获取主机性能参数
Ganglia是一款优秀的性能监测软件,能够及时获取主机的各项性能参数。Ganglia由gmond、gmetad和web前端组成。其中gmond是收集主机性能参数的工具,gmetad负责管理gmond收集到的信息,web前端以网页的形式显示出各项性能参数。毫无疑问,gmond是Ganglia的核心。 gmond是一个守护进程,运行在主机上,并在TCP的8649端口侦听。远程主机可以通过864
2013-05-21 10:01:33 3185
原创 linux shell操作MySQL数据库
MySQL数据库是linux下常见的数据库管理系统,学会利用linux shell操作MySQL数据库很有必要。 首先安装MySQL数据库。 1、安装MySQL客户端: yum install mysql 2、安装MySQL服务端: yum install mysql-server yum install mysql-d
2013-05-16 17:27:15 847
原创 crontab的设置与应用
crontab的功能是以一定的时间间隔调度一些命令的执行。用于设置在特定的时间执行特定的功能,是linux系统管理员常用的工具之一。 在系统中有两个地方可以存储用户设置的命令。 一个在/etc目录之下,有一个名为crontab的文件,利用vim crontab可以在crontab中加入设置的命令。 另一个在/var/spool/cron目录之下,有以用户名命名的文件,利用cron
2013-05-15 15:25:22 693
原创 linux shell伪随机数的产生和应用
linux shell中利用$RAMDOM产生伪随机数,伪随机数的应用背景还是比较广泛的。以下脚本模拟掷骰子的过程,统计各个面出现的次数。具体脚本如下 1 #! /bin/bash 2 3 function count() 4 { 5 case "$1" in 6 1) 7 one=$((one+1));; 8 2)
2013-05-14 16:53:01 714
原创 linux shell查找文本中n个出现频率最高的单词
linux shell对文本的处理相当强大,通常几条简单的命令就能实现高级语言很多代码才能实现的功能。以下是查找文本中n个出现频率最高的单词的脚本。 1 #! /bin/bash 2 3 cat "$1" | 4 tr -cs '[a-z][A-Z]' '[\012*]' | 5 tr 'A-Z' 'a-z' | 6 sort | 7 uniq -c | 8 s
2013-05-14 16:14:14 1685
原创 linux shell将文本文件转换为html文件
写了个脚本,简单的将文本文件转换为html文件。 1、使用sed命令,具体脚本如下 1 #! /bin/bash 2 3 cat << END 4 5 6 7 8 Information 9 10 11 12 13
2013-05-14 12:03:58 4110
原创 linux shell脚本调试技术
linux shell解释器缺乏相应的调试机制和调试工具的支持。因此调试脚本的技术非常重要。 与其他高级程序设计语言类似,shell脚本的错误分为两类:语法错误和逻辑错误。 其中语法错误比较直观,我们只要定位到发生错误的代码段或行,发现产生错误的原因,再改正错误即可。常见的语法错误包括漏写关键字、漏写引号、空格符该有而未有、空格符不该有而有、变量大小写不区分等。 逻辑错误则比较隐
2013-05-13 18:21:19 936
原创 CentOS下使用第三方源EPEL
CentOS自带的yum源不够强大,很多软件包都找不到,为此需要采用EPEL这个第三方源来给我们提供更多更好的软件包。 具体步骤如下 1、下载合适版本的epel源的rpm安装包 进入官网:https://fedoraproject.org/wiki/EPEL 找到“How can I use these extra packages?",查看合适版本
2013-05-13 10:48:26 691
原创 vc6.0配置boost正则表达式库
因为毕设需要用到正则表达式的有关技术,故最近学习使用了boost库提供的正则表达式。以下是vc6.0下配置boost正则库的步骤。 1、下载boost库并解压,如D:\boost。 2、编译,因为只需要支持正则表达式就可以,因此只需要编译D:\boost\libs\regex\build目录下的文件。打开cmd,进入D:\boost\libs\regex\build。
2013-05-09 10:55:05 882
原创 linux shell写的求阶乘和求汉诺塔的脚本
最近学习linux shell函数方面的知识,接触到递归函数,于是写了求阶乘和求汉诺塔的脚本。1、求阶乘的脚本#! /bin/bashfunction jiecheng(){ local n=$1 if [ "$1" -eq "1" ];then result=1 else temp=$((n-1)) jiecheng $temp result=$((n*$r
2013-05-08 14:14:13 3496
原创 linux shell学习
LInux Shell编程涉及的基本语法。 1、变量和引用"$"是变量替换符号,如varialbe是变量,则$variable就表示变量的值(有时需要使用${variable})。变量赋值的格式为 variable=value注意,如果"value"中包含空格,则必须用双引号括起来。利用unset命令可以清除变量的值,命令格式为 unset 变量名一种特殊的变量
2013-05-06 16:54:05 664
原创 文件的排序、合并和分割
Linux下常见的文本处理命令。 1、sort命令sort命令是一种对文件排序的工具。sort命令将输入文件看做由多条记录组成的数据流,而记录由可变宽度的字段组成,以换行符作为定界符,以空格作为默认域分隔符。sort命令的基本格式为 sort [选项] [输入文件]sort命令选项及其意义-c:测试文件是否已经被排序。-k:指定排序的域。-m:合并两个已排序
2013-05-05 11:39:57 854
原创 awk命令
awk功能与sed类似,都是用来进行文本处理的,awk语言可以从文件或字符串中基于指定规则浏览和抽取信息。 awk编程模型如下: awk程序由一个主输入循环维持,主输入循环反复执行,直到终止条件被触发。但是主输入循环框架无需程序员编写,awk已经搭好主输入循环框架,程序员写的代码被嵌入到主输入循环框架中执行。主输入循环框架自动依次读取输入文本行,以供处理,而处理文件行的动作是由
2013-05-03 16:18:08 800
原创 sed命令
sed是一个非交互式文本编辑器,可以一次性处理所有的编辑任务,显得非常高效。 调用sed有三种方式: 1、在shell命令行输入命令调用sed,格式为 sed [选项] 'sed 命令' 输入文件 2、将sed命令插入脚本文件后,然后通过sed命令调用它,格式为 sed [选项] -f sed脚本文件 输入文件 3、将sed
2013-05-03 11:24:04 585
原创 grep命令
grep是一个强大的文本搜索工具,也是linux中最广泛使用的命令之一。 grep命令的一般格式: grep [选项] [模式] [文件...]1、grep命令选项及其意义 -c:只输出匹配行的数量。 -i:搜索时忽略大小写。 -h:查询多文件时不显示文件名。 -l:只列出符合匹配的文件名,而不列出具体的匹配行。 -n:
2013-05-03 10:29:19 854
原创 正则表达式
正则表达式的作用之大这里就不多说了,下面总结了基本的正则表达式和扩展的正则表达式。1、基本的正则表达式元字符集合及其意义 *:0个或多个在*字符之前的那个普通字符。 .:匹配任意字符。 ^:匹配行首,或后面字符的非。 $:匹配行尾。 [ ]:匹配字符集合。 \:转义符,屏蔽一个元字符的特殊意义。 \:精确匹配符号。 \{
2013-05-03 09:45:41 417
原创 Vim编辑器
Vim真的是一款十分强大又简洁的文本编辑器(个人比较喜欢精简但又强大的软件)。最近学习linux shell编程免不了要在linux下写脚本程序,因此挑选了Vim作为文本编辑器。以下是Vim的常见的操作。1、如何快速移动光标 Vim不像Windows下的常见的文本编辑器可以使用鼠标快速的移动光标,因此移动光标主要依靠命令或按键操作。Vim有普通模式和插入模式,插入模式下用于编辑文本,所以
2013-04-30 17:28:19 477
原创 LIST_ENTRY的介绍以及简单实用(未完待续)
链表是驱动开发中经常使用的数据结构,以双向循环链表为主。WDK为我们提供了一个名为LIST_ENTRY的结构体,通过它我们可以使用链表。LIST_ENTRY的定义如下: typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; // 指向下一个节点 struct _LIST_ENTRY *Blink;
2013-03-17 16:02:01 2511
原创 Sqlite的配置与简单的使用
Sqlite是一款非常优秀的小型数据库,适用于规模不大,对并发稳定性要求不高的场合。它不像常见的数据库管理系统是客户端-服务器模式,简单的说就是一个可读写的文件,因而可以嵌入到程序当中不需要一个独立的数据库管理系统。最近学习了一下Sqlite的使用,以下是在VC6.0环境中配置sqlite的过程。1.下载Sqlite 我下载的是windows平台下的Sqlite,里面包含sqlite
2013-03-16 10:59:13 994
原创 常用的网络协议汇总
网络编程无可避免的会用到网络协议,将一些常用的网络协议进行一下汇总,方便以后的查询。主要包括以太网帧、IP数据报、TCP报文段、UDP数据报。 1.以太网帧 2.IP数据报 3.TCP报文段 4.UDP数据报 以上是各个协议的格式,主要方便查询,故字段的详细意义没有列出。
2012-12-21 10:16:50 644
原创 记录自己学习过程中的每一点收获
三天漫长的等待结束了,终于可以写博客了。 以前总是将学习心得记录在本子上,结果是想要翻阅的时候却发现本子找不到了。后来发现将心得作为博客发表出来还是挺靠谱的。 这是我的第一篇博客,算是开个头吧。以后我将陆续上传学习心得,记录自己学习的点点滴滴。
2012-11-02 10:27:59 611
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人