`
boisterous
  • 浏览: 62656 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
文章列表

sh pipeline

sh的保留字如下:            !        {        }        case      do            done     elif     else     esac      fi            for      if       then     until     while 原来{ 和 }都是保留字,这样我真正明白它们前后必须有空格的原因。 Pipelines      Note that unlike some other shells, sh executes each process in the pipe-      line ...
FreeBSD在做IPsec-Gateway或作路由的情况下,当处理的数据包到达一定数量级(>15000包/每秒)时,系统的负载会很高,表现是输入任何命令响应很慢。 用TOP显示CPU的状态时,大量时间被中断(interrupt),如下: CPU states: 0.0% user, 0.0% nice, 1.0% system, 98.8% interrupt, 0.2% idle 原因是每个数据包过来,网卡都会请求CPU中断,当包的数量过高时,CPU很难正常处理其它事情。 这时候可以利用网卡的polling模式解决这个问题,polling模式就是让cpu定期去取网卡内存中的数据包 ...

crond需要重启么?

 
今天一同事说把A机器的/var/spool/cron/admin scp到B机器上的/var/spool/cron/目录下,有时不生效,需要restart crond. 经过实际验证,发现此现象描述不对。为了查明现象,又看了一下cron 的manual page,有这么一段描述: Additionally, cron checks each minute to see  if  its  spool  directory's  modtime  (or  the  modtime  on /etc/crontab)  has  changed, and if it has, cron wi ...
   大家知道物理内存的存取速度是通常磁盘的10倍以上,直接使用它来存放客户频繁访问的资源有很多应用场景,比方说我们的少量静态资源,例如css,js,image),那么我们就可以直接使用内存来存放这些资源,能很好的提高用户访问网站的体验。   传统的ramdisk是个块设,是把物理内存拿出来一部份当作磁盘使用,使用它需要用mkfs来创建文件系统,才能真正地使用它,且改变ramdisk的默认大小(默认是16MB)好像还比较麻烦.这个功能其实已可以使用tmpfs来代替,并且更简单.    tmpfs是一种基于内存的文件系统,使用它不需要像ramdisk还需要手工创建文件系统,直接mount即可. ...
信号的处理 程序是和网络相关的,调试期间经常地收到SIGPIPE,导致gdb停下来。看了一下gdb info,解决方法很简单。用handle命令设置一下缺省signal的处理行为就可以了: handle SIGPIPE nostop 如果连提示信息都不想看见,就可以这样设置: handle SIGPIPE nostop noprint 就可以了。其他相关信号也可以类似处理。想了解目前的signal状态可以使用info signal察看。 启动配置文件 GDB使用中比较麻烦的事情,就是每次启动,还要手动敲一把命令,特别是断点比较多的情况,这个特便影响,工作效率。查了一下 gdb info,gdb ...
linux 中信号相关的一个结构体 struct sigaction 主要在sigaction信号安装和sigqueue信号发送时会用到 该结构位于/usr/include/bits/sigaction.h 在里面可以找到该结构的描述 {我现在实现的系统是as 4 内核版本 2.6.9-5.EL} /* Structure describing the action to be taken when a signal arrives.     */ struct sigaction      {        /* Signal handler.     */ #ifdef __USE_POSI ...
在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。     但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不 ...

asprintf

sprintf() 的整个介面长的样子的是:   int sprintf ( char * str, const char * format, ... )   也就是在使用前,必须要先建立好一个字元阵列的空间,再用这个函式把内容填入,下面就是简单的例子:   int tmp = 10;   char cstr[20];   sprintf( cstr, "%d * %d = %d", tmp, tmp, tmp * tmp );   在这个例子里,cstr 最后的值,会是「10 * 10 = 100」,看起来好像很好?但是如果把 tmp 的值改成 10 ...
需求:         从终端获取用户输入的用户名和密码(有效长度为n),我把 buffer 设为 n+10,这样当用         户输入过长时可以接收到多余的字符,从而判断出超长了;如果用户直接按回车键,那么应该         接收到0个字符。 函数:         fgets( buf, buf_size, stdin) 问题:         当用户输入超过 buf_size 时,下次再调用 fgets(),它会直接返回而不是等待用户输入,         因为 fgets() 是直接从 stdin 拿字符的,上次没有取完的字符,直接被 fgets() 拿走然         ...
说起来有点土,事到如今才第一次用socat. 不过今天看了一眼,netcat(nc)这东西ms已经N年没有人维护了.最先有个叫nc110的东西,由于太普及, 以至于人们都不想再去改动它的功能.结果导致多年来没有任何进步…现任的RHEL5里面好像也是由 ...
disown是bash内部命令,nohup是外部命令 disown跟bg,fg一样是针对job进行操作,nohup是针对命令操作 disown -h 和nohup一样,在退出bash后,把进程的控制权都交给init

gcc attribute

 GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。   __attribute__书写特征是:__attribute__前后都有两个下划线, ...
TCP_NODELAY 和 TCP_CORK, 这两个选项都对网络连接的行为具有重要的作用。许多UNIX系统都实现了TCP_NODELAY选项,但是,TCP_CORK则是Linux系统所独有的 而且相对较新;它首先在内核版本2.4上得以实现。此外,其他UNIX系统版本也有功能类 ...

boost trim

boost 字符串算法解密 修剪(trim.hpp)      trim 算法库中是用于修剪字符串的: trim_left_copy_if() trim_left_if() trim_left_copy() trim_left() trim_right_copy_if() trim_right_if() trim_right_copy() trim_right() trim_copy_if() trim_if() trim_copy() trim()     第一组 绿色 表示修剪字符串左端的空格(含 _if 的代表断言为真的字符)。     第二组 ...
本章介绍的主题是multi_index_container 注:继续往下读之前希望你对C++模板和stl的一些知识有过了解 什么是多索引容器?为什么要使用它?如何使用?     接下来一一回答以上的问题。     想必大家在实际开发中一定多多少少 ...
Global site tag (gtag.js) - Google Analytics