
Linux/shell
文章平均质量分 54
sws9999
2012目标:40(TML)
2010目标:::AB!!!(实现)
2009大目标 ::: S(已实现)
展开
-
linux下的c++线程池实现
http://www.cnblogs.com/osyun/archive/2012/08/31/2664938.html转载 2012-11-02 10:11:53 · 1369 阅读 · 0 评论 -
第2章 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
<br />2.1 介绍 本论文描述包装外观模式。该模式的意图是通过面向对象(OO)类接口来封装低级函数和数据结构。常见的包装外观模式的例子是像MFC、ACE和AWT这样的类库,它们封装本地的OS C API,比如socket、pthreads或GUI函数。 `_'I 9,.a <br /> 直接对本地OS C API进行编程会使网络应用繁琐、不健壮、不可移植,且难以维护,因为应用开发者需要了解许多低级、易错的细节。本论文阐释包装外观模式怎样使这些类型的应用变转载 2010-09-27 11:39:00 · 2001 阅读 · 0 评论 -
Apache基本配置指南
<br />当初学的时候做的笔记,不是很全,别笑俺。欢迎老手们修正和补充<br /><br />1、如果找不到文件的具体位置,在Linux下可以用类似locate httpd.conf的指令来搜索文件的位置。如果搜索不到,可以先用updatedb指令更新索引数据库再用locate搜索。<br /><br />2、apachectl configtest或apachectl –t检查配置文件是否合法。apachectl一般位于安装目录的bin目录下(如:/usr/local/a原创 2010-09-26 12:06:00 · 769 阅读 · 0 评论 -
ACE开发新手上路
0.1. ACE简单环境构建 是什么? 中文介绍,很全面,很易懂。 http://wiki.huihoo.com/index.php?title=ACE 资源包 http://download.dre.vanderbilt.edu/ 选择下载 ACE.tar.gz 就可以了 存放在相应路径 例如/tmp/cd /tmp推荐安装(编译成静态库,方便进一步开发) tar -xzf ACE-5.6.6.tar.gz c原创 2010-09-19 17:47:00 · 2988 阅读 · 0 评论 -
ACE 学习必看书籍
《ACE 程序员指南》《C++网络编程 卷1:运用ACE和模式消除复杂性》《C++网络编程 卷2:基于ACE和框架的系统化复用》转载 2010-09-19 11:26:00 · 3667 阅读 · 0 评论 -
epoll介绍
<br />在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。<br />相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:<br />#define __FD_SETSIZE 1024<br />表示select最多同时监听转载 2010-09-07 16:05:00 · 548 阅读 · 0 评论 -
Linux消息队列操作
对消息队列的操作无非有下面三种类型:1、 打开或创建消息队列消息队列的内核持续性要求每个消息队列都在系统范围内对应唯一的键值,所以,要获得一个消息队列的描述字,只需提供该消息队列的键值即可;注:消息队列描述字是由在系统范围内唯一的键值生成的,而键值可以看作对应系统内的一条路经。2、 读写操作消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据结构: 1. struct msgbuf 2. { 3. long mtype; 4.转载 2010-09-02 14:50:00 · 667 阅读 · 0 评论 -
消息队列
优缺点消息队列只适用于单台主机的进程间通信,如果是不同主机,需要用socket等其他方式,也就不属于IPC的范畴了。消息队列可以实现异步通信,这似乎是优点,但说是它缺点也是可以的:通讯往往不是实时的。消息队列有大小限制,通常只用于小数据量的发送。系统对用户的大小限制可以通过 ulimit -q 命令进行查询。消息队列可以实现阻塞调用和非阻塞调用。实现简单,且可移植性好。 演示#include #include #include #include int main(int argc,char*a转载 2010-09-03 00:01:00 · 990 阅读 · 0 评论 -
signal函数的简单应用
<br />标准头文件<signal.h>,这个头文件定义了raise与signal函数,sig_atomic_t类型与开始执行信号事件的宏SIG。在标准要求里有6个信号宏<br /><br />http://www.5ivb.net/Info/38/Info6516/<br />---------------------------------------------------------------<br /><br />一个简单的应用<br /><br />#incl原创 2010-08-23 14:56:00 · 707 阅读 · 0 评论 -
Linux下的Memcache安装(附libevent安装)
<br />Linux下Memcache服务器端的安装服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 。下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)官网:h转载 2010-08-04 23:06:00 · 744 阅读 · 0 评论 -
Cscope 的使用
这下更厉害了, 用Cscope自己的话说 - "你可以把它当做是超过频的ctags", 其功能和强大程度可见一斑吧, 关于它的介绍我就不详细说了, 如果你安装好了前文介绍的中文帮助手册, 用下面的命令看看介绍吧: :help if_cscop.txt 我在这里简单摘抄一点, 供还在犹豫的朋友看看: Cscope 是一个交互式的屏幕下使用的工具,转载 2010-04-16 11:54:00 · 788 阅读 · 0 评论 -
SAMBA配置详解
使用 Linux 和 SAMBA替代Windows NT/2000 服务器摘要:这一篇文章提供了以前LinuxFocus 文章关于SAMBA用于在Unix-Windows异构网络共享资源的方案。 特别地,它集中在使用SAMBA运行Windows提供的服务。这不仅是因为Linux强大灵活,还更出于经济考虑的结果:* 极大的节省了购买Windows服务器的许转载 2010-02-21 09:19:00 · 635 阅读 · 0 评论 -
epoll的LT和ET模式
<br />// 从网上看到一个代码, 解释ET和LT的区别, 比较生动// 拷贝可以直接编译 g++ -g -Wall aaa.cpp #include <stdio.h>#include <iostream>#include <errno.h>#include <unistd.h>#include <fcntl.h>#include <stdlib.h>#include <sys/epoll.h>#include <sys/types.h>转载 2010-10-12 16:32:00 · 1229 阅读 · 1 评论 -
ACE日志配置策略(例子)
#define ACE_NTRACE 0// $Id: Use_Logging_Strategy.cpp 14 2007-02-01 15:49:12Z mitza $#include "ace/Log_Msg.h"#include "ace/Service_Config.h"#include "ace/OS.h"#include "ace/Reactor.h"#include #include /* Put the following in your svc.conf转载 2010-10-14 11:24:00 · 1125 阅读 · 0 评论 -
vim编程常用命令(随时补充更新)
% 跳转到配对的括号去[[ 跳转到代码块的开头去(但要求代码块中'{'必须单独占一行)gD 跳转到局部变量的定义处'' 跳转到光标上次停靠的地方, 是两个', 而不是一个"mx 设置书签,x只能是a-z的26个字母`x 跳转到书签处("`"是1左边的键)> 增加缩进,"x>"表示增加以下x行的缩进原创 2010-10-20 09:57:00 · 671 阅读 · 0 评论 -
Linux下基于C/C++的Socket编程实例
#include #include #include #include #include #include #include #include #define SERVPORT 3333#define MAXDATASIZE 100 /*每次最大数据传输量 */main(int argc, char *argv[]){ int sock_fd, recvbyt原创 2012-11-02 10:10:39 · 17270 阅读 · 0 评论 -
Linux内存管理之三 页的分配和释放
Linux对内存区内的页框的分配和释放,采用的算法是伙伴系统。如上图,Linux分配页时,只能分配2^n个页。内核维护MAX_ORDER个链表,每个链表记录着连续的空闲页。第一个链表中的每一项为1个空闲页,第二个链表中的每一项为2个空闲页,第三个链表中的每一项为4个空闲页。。。,依次类推。分配页时,从对应的链表上摘除空闲页;释放页时,将对应的页归还到对应的链表。分配释放页的过程中,可能转载 2012-10-30 16:16:03 · 1589 阅读 · 0 评论 -
Linux内存管理之二 内存节点和内存分区
UMA和NUMA:UMA(Uniform Memory Access),即一致性内存访问。这种情况下,CPU访问内存的任何位置,代价都是一样的。NUMA)(Non Uniform Memory Access),即非一致性内存访问。这种情况下,CPU访问不同位置的内存,代价是不一样的。在多CPU情况下,对每个CPU来说有本地内存和远端内存,访问本地内存的代价比访问远端内存的代价小。确保CPU转载 2012-10-30 16:14:48 · 3481 阅读 · 0 评论 -
Linux内存管理之一 分段与分页
现代操作系统的内存管理机制有两种:段式管理和页式管理。段式内存管理,就是将内存分成段,每个段的起始地址就是段基地址。地址映射的时候,由逻辑地址加上段基地址而得到物理地址。纯粹的段式内存管理的缺点很明显,就是灵活性和效率比较差。首先是段的长度是可变的,这给内存的换入换出带来诸多不便,如何选择一个段的长度是一个棘手的问题;其次进程在运行过程中,可能会扩充地址空间,这就要增加段,从而造成进程的地转载 2012-10-30 16:12:57 · 3880 阅读 · 1 评论 -
cat | wc -l 少一行的问题
今天从一个服务器列表来批量执行expect脚本进行Tivoli Endpoint Client的安装,从excel表格中拷贝出服务器名导入到txt文件上传到服务器后,执行wc -l统计发现少了一行,反复对比确认不存在遗失的条目,那么为什么wc -l少一行呢?查询帮助文件:[root@managevm1 ~]# wc --help -l, --lines转载 2012-09-04 14:35:09 · 8580 阅读 · 0 评论 -
bdb及其在php下扩展的安装
<br />1、安装Berkeley DB<br /><br /># cd /usr/local/src<br /># wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz<br /># tar -zxvf db-4.6.21.tar.gz<br /># cd db-4.6.21<br /># cd build_unix<br /><br />Berkeley DB默认是安装在/usr/local/BerkeleyD转载 2011-01-28 13:59:00 · 657 阅读 · 0 评论 -
判断文件夹是否存在
<br />if [ -d 目录名 ]; <br />then<br /> echo "目录存在";<br />else<br /> echo "目录不存在";<br />fi <br /> <br />实例1 判断参数是否为空:<br />if [ -z "$1" ];then<br />echo "please input parameter"<br />exit<br />else<br />echo "parameter 1: $原创 2011-01-07 10:09:00 · 627 阅读 · 0 评论 -
README
<br />创建ramfs:<br />mount -tramfs customname dirname原创 2011-01-05 14:54:00 · 454 阅读 · 0 评论 -
获取文件夹文件(C++)
<br />#include<sys/types.h>#include <stdlib.h>#include <stdio.h>#include <dirent.h>#include <unistd.h>DIR * dir;struct dirent * ptr;dir=opendir(dir_path.c_str());int i=0;while((ptr=readdir(dir))!=NULL){ if ( ".." == string(ptr->d_原创 2011-01-06 11:15:00 · 662 阅读 · 0 评论 -
vim 编码方式(encoding、fileencoding、fileencodings、termencoding介绍)
<br />vim 编码方式的设置<br /> <br />和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2、UTF-8 等流行的 Unicode 编码方式。然而不幸的是,和很多来自 Linux 世界的软件一样,这需要你自己动手设置。<br />Vim 有四个跟字符编码方式有关的选项,encoding、fileencoding、fileencodings、termencoding (这些选项可能的取值请参考 Vim 在线帮助 :help encoding-names转载 2010-12-21 10:45:00 · 10655 阅读 · 0 评论 -
yast 创建本地数据源
以使用安装盘、SLES为例,建立本地yast2源<br />1:将光盘逐个拷入某目录中,设为/yast2-source<br />2:加入yast2源列表<br /># zypper sa file:///yast2-source local-sles<br />3:可以使用yasts/zypper命令来访问这个数据源了原创 2010-12-19 21:53:00 · 2503 阅读 · 0 评论 -
手把手教你把Vim改装成一个IDE编程环境(图文)
http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx转载 2010-10-19 10:35:00 · 493 阅读 · 0 评论 -
通过 ulimit 改善系统性能
本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 使用方法。通过这篇文章,读者不仅可以了解 ulimit 所起的作用,并且可以学会如何更好地通过 ulimit 限制资源的使用来改善系统性能。概述系统性能一直是一个受关注的话题,如何通过最简单的设置来实现最有效的性能调优,如何在有限资源的条件下保证程序的运作,ulimit是我们在处理这些转载 2010-01-13 15:15:00 · 498 阅读 · 0 评论 -
如何安装ACE
如何在linux安装ACE: 1. 首先确定ACE的安装路径,并建立相应的目录。 这里,我们把ACE安装在/home/zhc/ace/的目录下,先执行 mkdir /home/zhc/ace 2. 然后将获得的ACE源代码包解至该目录下。 tar zxvf ACE-5.4.tar.gz /home/zhc/ace 3. 这时,在ac转载 2010-01-14 15:33:00 · 1605 阅读 · 0 评论 -
LINUX下 httpd.conf my.cnf php.ini的位置
默认:httpd.conf 在/etc/httpd/confmy.cnf 在/etcphp.ini 在/usr/local/lib在Unix 上,php.ini文件缺省放在/usr/local/lib上面,因为缺省的存放路径是/lib,但是可以在编译的时候使用--with-config-file-path参数来修改php.ini的存放位置,例如你可原创 2009-11-18 16:16:00 · 4257 阅读 · 0 评论 -
写得蛮好的linux学习笔记
linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /b转载 2008-10-03 13:33:00 · 575 阅读 · 0 评论 -
/dev/null 2>&1 解释
cmd >a 2>a 和 cmd >a 2>&1 为什么不同?u [ k E*[ l051Testing软件测试网1g:j ^ ] G2F M s Fcmd >a 2>a :stdout和stderr都直接送往文件 a ,a文件会被打开两遍,由此导致stdout和stderr互相覆盖。:B ? b/c N7W01/ z g3d x%| `0cmd >a 2>&1 :stdout直接送往文件a ,s转载 2008-09-21 21:27:00 · 1083 阅读 · 0 评论 -
Linux下的多线程编程
作者:姚继锋 2001-08-11 09:05:00 来自:http://www.china-pub.com1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技转载 2008-09-15 21:01:00 · 605 阅读 · 0 评论 -
GDB调试(三)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:/home/hchen> gdbGNU gdb 5.1.1Copyright 2002 Free Software Foundation, Inc.GDB is free software, covered by the GNU转载 2008-08-28 13:53:00 · 633 阅读 · 0 评论 -
GDB调试(二)
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示:/home/hchen> gdbGNU gdb 5.1.1Copyright 2002 Free Software Foundation, Inc.GDB is free software, covered by the GNU转载 2008-08-28 13:49:00 · 837 阅读 · 0 评论 -
GDB调试(一)
GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软转载 2008-08-28 13:46:00 · 552 阅读 · 0 评论 -
Fedora Core 8下的Apache + Subversion(SVN)配置
1, 下载Apache下载地址:http://httpd.apache.org/download.cgi我下载的是:httpd-2.2.8.tar.bz2,下载后解压缩到当前目录,命令如下:tar jxvf httpd-2.2.8.tar.bz22, 下载Subversion下载地址:http://subversion.tigris.org/servlets/P原创 2008-08-06 09:36:00 · 1054 阅读 · 0 评论 -
设置vimrc
1 set nu 显示行号 2 syntax on语法高亮 3 set backspace=indent,eol,start 4 set whichwrap=b,s,,[,] 5 set sw=4缩进tab 6 set ts=4tab 7 set cin原创 2008-07-30 14:52:00 · 548 阅读 · 0 评论 -
Linux启动mysql/httpd
1.安装Fedora 9 http://wiki.debian.org.hk/w/Install_Fedora_Linux2.启动mysql/httpd cd /etc/init.d/ ./mysqld start ./httpd start3.web 目录: /var/www/html原创 2008-07-18 17:01:00 · 727 阅读 · 0 评论 -
Fedora 下防火墙的关闭
-------------------------------Fedora 下防火墙的关闭-----------------从配置菜单关闭防火墙是不起作用的,索性在安装的时候就不要装防火墙查看防火墙状态:/etc/init.d/iptables status暂时关闭防火墙:/etc/init.d/iptables stop禁止防火墙在系统启动时启动/sbin/chkconfig --le原创 2008-07-18 17:25:00 · 4745 阅读 · 0 评论