分类 Ubuntu 下的文章

“Ubuntu是以桌面应用为主的Linux发行版,基于Debian。Ubuntu有三个正式版本,包括桌面版、服务器版及用于物联网设备和机器人的Core版。从17.10版本开始,Ubuntu以GNOME为默认桌面环境。 Ubuntu是著名的Linux发行版之一,也是目前最多用户的Linux版本。 ”

void print_json(json &j)
{
    LOG("dump = %s\n\n", j.dump().c_str());
    for (const auto &item : j.items())
    {
        std::cout << "key:" << item.key() << endl;
        if (!item.key().empty() && j[item.key()].is_object())
        {
            print_json(j[item.key()]);
        }
        else if (!item.key().empty() && j[item.key()].is_array())
        {
            for (int i = 0; i < j[item.key()].size(); i++)
            {
                if (j[item.key()][i].is_object())
                    print_json(j[item.key()][i]);
            }
        }
        else if (!item.key().empty())
        {
            cout << item.value() << endl;
        }
    }
}

nlohmann json 将键值从字符串修改为数组
如下,原数据是这样
j["example"]="hello example";
修改成
j["example"]=json({"example2", "hello example2"});

好像直接这样就可以了.

测试验证

json j;
j["example"] = "hello example";
cout << j.dump(4) << endl;
j["example"] = json({"example2", "hello example2"});
cout << j.dump(4) << endl;

结果

{
    "example": "hello example"
}
{
    "example": [
        "example2",
        "hello example2"
    ]
}

测试代码

json j;
j["example"] = "hello example";
cout << j.dump(4) << endl;
j["example"] = json::array();
json j1, j2;
j1["one"] = 1;
j2["two"] = 2;
j["example"].push_back(j1);
j["example"].push_back(j2);
cout << j.dump(4) << endl;

运行结果:

{
    "example": "hello example"
}
{
    "example": [
        {
            "one": 1
        },
        {
            "two": 2
        }
    ]
}

sudo vim /etc/init.d/mosquitto

Change /bin/sh to /bin/bash for fixing "ulimit -u illegal option" error

set_ulimit () {

ulimit -f unlimited
ulimit -t unlimited
ulimit -v unlimited
ulimit -n 1048576
ulimit -m unlimited
ulimit -u 1048576

}

start)

...
# Update ulimit config in start command
set_ulimit
...
;;

stop)

After changed the config, reload systemctl config and restart mosquitto

sudo systemctl daemon-reload
sudo service mosquitto stop
sudo service mosquitto start

https://stackoverflow.com/questions/40199152/mosquitto-increase-max-connections

首先,安装imagemagick

sudo apt install imagemagick

将多个图片合并到一个pdf文件

convert "*.{png,jpeg}" -quality 100 outfile.pdf
convert "IMG*.png" -quality 100 outfile.pdf

如果出现错误信息:
convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF'
则修改相应权限。

 sudo vi /etc/ImageMagick-6/policy.xml


<policy domain="coder" rights="none" pattern="PDF" />
修改为
<policy domain="coder" rights="read|write" pattern="PDF" />

再执行

convert "IMG*.png" -quality 100 outfile.pdf

以下为示例,把AA BB CC DD替换为真实数据即可。

sed -i '0,/^/s/^/\xAA\xBB\xCC\xDD/' test.pcm

 sed -i '0,/^/s/^/\xd4\xc3\xb2\xa1\x02\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x01\x00\x00\x00/' dump.pcap