08 2018 档案
摘要:cut命令使用方式有点像阉割版的awk,主要用来指定分隔符,然后输出特定的域。 常用参数: -d 指定分隔符,默认是空格 -f 输出特定的域,比如f1,输出第一个域;f1,5, 输出第一个和第5个域;f1-5,输出1到5这5个域 -b 显示的字节数 比如这里有个txt文件如下: cut -b 1,4
阅读全文
摘要:-w -W -Wall -w 关闭编译警告。平时编写c/c++代码如果不规范,编译的时候会抛出很多警告。但是一般的警告都是可以忽略的,比如类型转换。编译的时候可以加-w关闭警告 -W 也是关闭编译警告,但是比-w智能一些,它只会显示编辑器认为会出错的警告 -Wall, 显示所有警告。 比如下面的代码
阅读全文
摘要:volatile 如果一个变量使用volatile修饰,那么当使用它的值时,一定会从内存中读出。 c++中之所以引入这个关键字,是因为有些编译器在编译的时候会对代码进行优化。下面是常见的优化: 假设有两个线程共享is_running变量: 线程1: while(is_running == 1) {
阅读全文
摘要:什么是指针 C语言中的所有变量都是存储在一块内存中的。以32位机器为例,char型的变量存储在一块1字节的内存中,int型的变量存储在一块4字节的内存中。指针本质上也是个变量,也存储在一块4字节的内存中。只不过指针那块内存中存储的是一个地址而已。我们可以把某个变量的4字节地址存储在指针的那块内存中。
阅读全文
摘要:在日常的工作中,bash shell 的时间操作非常频繁。比如shell脚本定时发送数据统计的时候,会查看当前是否为预定的发送时间。或者使用文件保存一些数据时,一般会生成时间字符串当做文件名的一部分。总结一下,以后再用到就不用上网到处翻了。 <1> 最基本的操作,获取当前时间(年-月-日 时:分:秒
阅读全文
摘要:<1> 获取字符串长度: ${#str} <2> 获取尾部字符串: ${str#*b}, 非贪婪匹配删除的部分,从字符串左边开始,删除掉第一个出现的'b'及其左边所有的字符串。 ${str##*b}, 贪婪匹配删除的部分,从字符串左边开始,删除掉最后一个出现的‘b’以及左边所有的字符串。 <3> 获
阅读全文
摘要:<1> load average 先来看一下linux中存活状态下进程的粗略分类: a. blocking process, 可能在等在IO或者自己调用wait系列的函数 b. runnable process, 所有资源一切就绪,就差cpu了,在任务队列里排队等待cpu资源 c. running
阅读全文
摘要:简介: netstat命令用于显示和检测机器的网络连接情况。并且可以跟据协议筛选自己想要看到的数据。比如有一天突然发现“too many open files”错误,就可以使用netstat来查看机器是否打开了大量的tcp连接。 使用方法: 简单的使用方式: netstat -[acCeFghilM
阅读全文
摘要:以下的内容是我看了网上的博文后自己的总结,如果时间充裕的话,建议直接看原文。 简介: c++中的右值引用十分不好理解,但是当你大概知道右值引用解决了c++中的什么问题后,会感觉右值引用还是很有用的。平时我们在c++中使用的引用为了和c++11引入的右值引用区分,一般把它称之为左值引用。左值引用很好理
阅读全文
摘要:php的函数是在太多,而且风格各有不同。与其博览php的所有函数,不如总结一些常用的函数,形成自己处理业务的一套逻辑来的轻松和有用。 字符串操作: 字符串截取 substr(string, start, length) 查找字符串出现位置 strpos(string, find, start), 第
阅读全文
摘要:下载并安装redis到机器后,使用默认配置启动。发现本机client使用“localhost”或者“127.0.0.1”连接本机的server,一切正常ok。但是将client切换到别的机器上时,发现连接不上。查了一下,原因如下: redis的默认配置是没有用户验证的。也就是说,reids的serv
阅读全文
摘要:简介 为了解决c++程序容易造成内存泄漏的问题,c++11提供了3种智能指针:std::unique_prt, std::shared_ptr, std::weak_ptr。智能指针的原理就是,将一个申请好的内存地址保存在智能指针结构体内部,然后把智能指针保存在栈上。当智能指针出了作用域后,由于栈上
阅读全文
摘要:分布式系统产生背景: 在互联网还没有现在这么方便的时候,所以很多公司的业务线都是垂直架构,如LAMP。由于各个公司的业务比较简单,需要处理的用户数据也相应较少,所以简单易上手的垂直架构还能很有效地支撑各个公司的业务发展。但是随着互联网的普及移动互联网的发展,需要处理的用户数据得到了爆炸性的增长。而且
阅读全文
摘要:简介 bash shell 提供了两种一维数组,分别是 index array 和 associative array,常见的翻译是索引数组和关联数组。任何变量都可以用作数组,也就是说如果你使用了数组赋值的语法操作变量(name[subscript]=value),则变量默认会转换为索引数组。同时你
阅读全文
摘要:简介 bash shell 中的变量就像脚本语言一样,可以直接拿来使用,并不需要提前声明。如果没有特殊的限定,则变量的默认类型是字符串。bash shell中的变量一共分为3类: <1> 用户自定义的变量 也叫作本地变量,作用域为整个bash进程。 <2> 环境变量 使用export声明或者定义的变
阅读全文