如何编写一个shell脚本

本文结合大量实例阐述如何编写一个shell脚本。  为什么要进行shell编程  在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。  下面,让我们一起来看看shell是...
阅读(22273) 评论(0)

Vim的分屏功能

本篇文章主要教你如何使用 Vim 分屏功能 分屏启动Vim使用大写的o参数来上下分屏。vim -on file1 file2 ...使用小写的O参数来左右分屏。vim -On file1 file2 ...注释: n是数字,表示分成几个屏。关闭分屏 关闭当前窗口。Ctrl+W c关闭当前窗口,如果只剩最后一个了,则退出Vim。Ctrl+W q分屏上下分割当前打开的文件。Ctrl+W s上下分割,并...
阅读(21741) 评论(0)

Linux多线程编程详细解析----条件变量 pthread_cond_t

Linux操作系统下的多线程编程详细解析----条件变量1.初始化条件变量pthread_cond_init#include int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。否则条件变量的属性将由cattr中的属性值来决定。调用 pthread_cond_init函数时,参数catt...
阅读(27832) 评论(2)

C++纯虚函数 virtual =0

C++纯虚函数 virtual =0一、定义  纯虚函数是一种特殊的虚函数,它的一般格式如下:  class   {  virtual ()=0;  …  };  在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。二、引入原因  1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。  2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔雀等子类,但动物本身生成对象明显不合常理。  为了解...
阅读(18650) 评论(7)

C++箴言:理解typename的两个含义

在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?      相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为:       template......     在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typenam...
阅读(3242) 评论(0)

C++巧用do...while(0)

C++中,有三种类型的循环语句:for、while、do...while在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性 1. do...while(0)消除goto语句 通常,如果在一个函数中开始要分配一些资源,然后在中...
阅读(3274) 评论(3)

标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast

一、 强制转型1) C 风格(C-style)强制转型: (T) exdivssion // cast exdivssion to be of type T 2) 函数风格(Function-style)强制转型使用这样的语法: T(exdivssion) // cast exdivssion to be of type T上面两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题,我...
阅读(3177) 评论(0)

vim encoding and font

一般的,vim打开中文文件时会出现乱码,原因比较复杂,不罗嗦了。直接讲解决办法    set fileencoding=gb18030    set fileencodings=utf-8,gb18030,utf-16,big5想看这样设置的原因吗?请继续。下文在网络中广泛流传vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)其中fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系...
阅读(4834) 评论(0)

Linux下的signal信号机制

在Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。用户可以只将信号发送给用户自己的进程,也可以以root身份运行从而将信号发送给任意一进程。         程序员可以调用 int raise(int signo) 将一个信号发送给它自己。这个函数只带有一个参数,既要发送信号的编号。如:raise(SIGINT); raise(SIGKILL);         让人感兴趣的是函数 uns...
阅读(15766) 评论(0)

宏中"#"和"##"的用法

一、一般用法  我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.  用法:  #include#includeusing namespace std;  #define STR(s) #s  #define CONS(a,b) int(a##e##b)  int main()  {    printf(STR(vck)); // 输出字符串"vck"    printf("%d  ", CONS(2,3)); // 2e3 输出:2000    return 0;  }  二、当宏参数是另一...
阅读(4188) 评论(0)

指针数组与指向指针的指针

指针数组与指向指针的指针http://wlkc.gdqy.edu.cn/jpkc/portal/blob?key=173314  指针数组和数组指针的区别http://allew.blog.163.com/blog/static/3374389720094148449239/  指针数组[组图]http://school.cnd8.com/c/jiaocheng/9212.htm 函数指针和指针函...
阅读(3132) 评论(0)

struct linger

TCP连接断开的时候调用closesocket函数,已经讨论过有优雅的断开和强制断开,那么如何设置断开连接的方式呢?是通过设置socket描述符一个linger结构体属性。linger结构体数据结构如下:struct linger{     int l_onoff;     int l_linger;};有三种组合方式:第一种    l_onoff = 0;    l_linger忽略    这种方式下,就是在closesocket的时候立刻返回,底层会将未发送完的数据发送完成后再释放资源,也就是优雅的退出...
阅读(3495) 评论(0)

关于SIGPIPE导致的程序退出

服务器关了正在连接的客户端socket_fd,客户端做出的反应过程当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。    根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN    如:    signal(SIGPIPE,...
阅读(3758) 评论(0)

vim 快捷键技巧总结

VIM REFERENCE MANUAL by Bram Moolenaarhttp://vimcdoc.sourceforge.net/doc/quickref.html#Q_viVIM 用户手册 - by Bram Moolenaarhttp://vimcdoc.sourceforge.net/doc/usr_03.html#03.8...
阅读(27920) 评论(0)

C++ list

Source:#include #include #include #include using namespace std; typedef list LISTINT; //创建一个list容器的实例LISTINT typedef list LISTCHAR; //创建一个list容器的实例LISTCHAR int main(void) { LISTINT listOne; //用LISTINT创建一个名为listOne的l...
阅读(3673) 评论(0)
    个人资料
    • 访问:11690868次
    • 积分:88682
    • 等级:
    • 排名:第15名
    • 原创:708篇
    • 转载:169篇
    • 译文:16篇
    • 评论:3047条
    学习经历
    中科院、百度、创新工场、小米、阿里巴巴、米扑科技

    期货从业资格证(2017.03)
    基金从业资格证(2016.11)
    证券投资顾问证(2016.9)
    证券从业资格证(2016.6)
    系统架构设计师(2013)
    软件设计师(2008)
    CSDN创业专访

    程序员创业邦
    QQ群: 239292073
    青春,每一个有梦想的人

    资深产品经理人
    QQ群: 338142405
    思与行,人人都是产品经理

    爱脚本,爱技术
    QQ群: 320296250
    (已满)
    python、ruby、php、go、shell

    程序人生的平凡生活
    QQ群: 282297696
    (已满)
    汇聚百度、小米、微软、腾讯、
    创新工场、阿里巴巴、日本雅虎
    个人博客
    博客专栏
    博客公告
    本博客内容,由本人精心整理
    欢迎交流,欢迎转载,大家转载注明出处,禁止用于商业目的。

    文章分类