摘要:
uniq和sort都是按行操作的linux命令。 sort按文本行排序,如下所示的log文件;直接sort log即可将其排序。 容易忽略的是sort -n命令,在如下例子中将看到 如果直接sort则会返回下图所示的内容,这是因为sort将所有的东东都当做字符处理4比1 2 3都大,比较结束。-n选 阅读全文
摘要:
用cmake替代makefile,构建项目还是蛮简单实用的。 工程目录下src放源代码,build保存所有的编译过程和结果。 首先看看src目录下的源代码结构: 最顶层CMakeLists.txt内容如下: 第一部分介绍了编译的环境,工程的名字main project(main) CMAKE_C_C 阅读全文
摘要:
主要用来写c++的;clang-completer这个是单独安装的,其他的都采用的vundle安装完成。 clang-completer:只在centos7.2上安装成功过,6.4上失败了。先要安装一些依赖库文件: 然后安装起来很简单,直接git拉下来,进入目录make install即可。 其他的 阅读全文
摘要:
示例代码。 PS在do_send中unlock和signal调用顺序任意都可以。 阅读全文
摘要:
死锁产生实例,两个线程两个互斥锁,每个线程占有一个互斥锁,同时想获得另一个互斥锁则会产生死锁。解决方案: 1.一次占有全部资源 2.每个线程占有锁的顺序是一致的。比如都是同时占有A,然后占有B锁。#include #include #include #include #include pthread_mutex_t mutex_one,mutex_two; pthread_mut... 阅读全文
摘要:
最近实习学到了写vim的基本用法,记录一下 批量注释 ctrl+v进入列模式,按“I”进入插入模式,按// #等在每行开头插入注释,esc 批量去除注释 ctrl + v 进入列模式,按“x”即可。 sed 替换命令,最近遇到的三个相对比较难的,mark一下 1. 将operation.log中的f 阅读全文
摘要:
今天在学习《Unix环境高级编程》,第七章进程环境给出了一个进程的内存分布示意图,从下往上依次为“正文段->初始化数据->未初始化数据(默认初始化为0)->堆(从低地址到高地址)->栈(从高地址到低地址)->命令行参数和环境变量”。其中的正文段也叫代码段,是可共享的,只读的。 这个时候我就想到上次做 阅读全文
摘要:
《Unix网络编程》30章详细介绍了几种服务器设计范式。总结了其中的几种,记录一下; 多进程的做法: 1.每次创建一个新的请求,fork一个子进程,处理该连接的数据传输。 2.预先派生一定数量的子进程,每个子进程都调用accept接收连接请求。当一个请求到来之后会触发所有进程的accept,但是只有 阅读全文
摘要:
正常情况是啥?一方发送FIN,另一方相应,四次挥手,断开连接。但是就像生活一样,服务器也总有意外,以下是《Unix网络编程》中提到的服务器的四种常见的意外情况。客户端在服务器端出现意外情况下是什么状况,又该该如何处理呢? 首先给出整个网络的基本流程图。客户端从标准输入读入数据,发往服务器端,服务器接 阅读全文
摘要:
常见的Linux服务端的开发模型有多进程、多线程和IO复用,即select、poll和epoll三种方式,其中现在广泛使用的IO模型主要epoll,关于该模型的性能相较于select和poll要好不少,本文也主要讨论该模型而忽略另外两种IO复用模型。 多线程相较于多进程开销比较小,但是要注意线程间数 阅读全文