2018年3月

一、基本用法

sort命令用于对文件和标准输入进行排序,默认以行为单位,根据字典序排序。

$ cat test # 测试文件
tencent 100 1000
baidu 200 500
alibaba 150 800
huawei 130 700
baidu 200 500

$ sort test  # 排序
alibaba 150 800
baidu 200 500
baidu 200 500
huawei 130 700
tencent 100 1000

- 阅读剩余部分 -

一、构造函数的执行规则

C++构造函数的调用顺序为:

  1. 如果类中包含静态成员变量,先执行静态成员变量的构造函数。
  2. 如果类是派生类,则先执行基类的构造函数。同样如果基类也是一个派生类,也要先执行基类的构造函数。
  3. 执行成员变量中的构造函数,根据定义的顺序来,先执行类内初始化,再执行列表初始化。
  4. 执行本类的构造函数。

- 阅读剩余部分 -

逗号表达式时c语言提供一种特殊的运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。

例如:

#include <iostream>
using namespace std;

int main() {
    int a = (1 + 2, 2 + 3);
    cout << a << endl;
    a = (a * 5, a + 6);

    return 0;
}

输出的结果为:

5
11

一、默认初始化

C++中,对于定义时没有指定初值的变量,将会被默认初始化,此时变量将被赋予“默认值”,默认值是具体是什么将由变量的类型和位置决定。

对于内置类型来说,它的默认值由定义的位置决定,定义于函数体外的变量(即全局变量)被初始化为0,定义于函数体内的局部变量将不被初始化,值是未定义的。

- 阅读剩余部分 -

一、概述

nginx作为当前最流行的开源web服务器之一,被无数公司或个人在使用。正因为开源,所以任何人都可以获取到它的源码,这其中就包含了世界各地的黑客。他们无时无刻不在想着如何找出nginx的漏洞,以至于在网上随便一搜都能找到无数nginx相关的漏洞:

默认情况下,http响应的Server头部都会携带上服务器的名字和版本信息:

> curl -I http://127.0.0.1
HTTP/1.1 502 Bad Gateway
Server: nginx/1.12.2   # 携带有服务端和版本号
Date: Mon, 12 Mar 2018 01:25:00 GMT
...

而一旦黑客知道了服务端软件的版本信息,很容易就能通过对应版本的漏洞来攻击服务器,引发安全问题。所以针对生产环境的服务器,有必要隐藏或者修改软件版本信息,以避免黑客的指向性攻击。

- 阅读剩余部分 -

配置https之前首先要确保已经有http证书私钥文件,证书是*.crt文件,私钥是*.key文件。

怎么申请证书这里不再说明,很多机构都可以免费发放证书,在腾讯云,阿里云或者七牛等等随便找个机构申请一个即可。

假设域名和证书的对应关系如下:

www.maqian.io

/etc/conf/ssl/1_www.maqian.io_bundle.crt
/etc/conf/ssl/2_www.maqian.io.key

maqian.io

/etc/conf/ssl/1_maqian.io_bundle.crt
/etc/conf/ssl/2_maqian.io.key

- 阅读剩余部分 -