- 浏览: 21814 次
- 性别:
- 来自: 贵阳
最新评论
文章列表
SHELL中检查字符串是否为空
- 博客分类:
- linux
摘自:https://www.runoob.com/linux/linux-shell-basic-operators.html
字符串比较是否为 null 这里:
#!/bin/bash
a=""if[-n $a ]then
SHELL中的中括号用法总结
- 博客分类:
- linux
摘自:https://www.runoob.com/w3cnote/shell-summary-brackets.html
Shell 里面的中括号(包括单中括号与双中括号)可用于一些条件的测试:
算术比较, 比如一个变量是否为0, [ $var -eq 0 ]。
文件属性测试,比如一个文件是否存在,[ -e $var ], 是否是目录,[ -d $var ]。
字符串比较, 比如两个字符串是否相同,
SHELL处理字符串
- 博客分类:
- linux
摘自:https://www.runoob.com/linux/linux-shell-variable.html
假设有变量 var=http://www.aaa.com/123.htm
1. # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}
链接:https://www.zhihu.com/question/38949490/answer/78918985
template <typename ...Types>
struct store
{};
template <>
struct store<>
{
using type = std::tuple<>;
};
template <typename First>
struct store<First>
{
using first = std::vector< ...
ubuntu16下QT中使用SVN
- 博客分类:
- QT
先安装svn:
sudo apt install subversion
在QT工具-》选项-》版本控制-》subversion:
检出项目,在新建项目时,选择subversion checkout:
如果在工具中看不到subversion,关闭QTCreator重启一次。
如果提交代码时报错:
svn Server SSL certificate verification failed: issuer is not trusted
需要在终端同步保存一下授权:
svn co https://ip/svn/pro/xxxxxx
执行这个指令会下 ...
make install安装过程
- 博客分类:
- linux
gzdlw@ubuntu:~/sqlite-autoconf-3280000$ sudo make install
make[1]: Entering directory '/home/tools/sqlite-autoconf-3280000'
/bin/mkdir -p '/usr/local/lib'
/bin/sh ./libtool --mode=install /usr/bin/install -c libsqlite3.la '/usr/local/lib'
#install -c拷贝
libtool: install: /usr/bin/install ...
关于子线程释放的时机
- 博客分类:
- C/C++
void test() {
ThreadRunner mThread("test");
int mCount = 1;
mThread.start([&mCount] {
mCount++;
printf("thread run...%d\n", mCount);
std::chrono::milliseconds sleepDuration(2000);
std::this_thread::sleep_for(sleepDuration);
return true;
});
cout < ...
今天掉了一次粪坑,新起项目:
class AcConsole : public QMainWindow
{
Q_OBJECT
private slots:
void buttonConnectClick();
public:
AcConsole(QWidget *parent = Q_NULLPTR);
private:
Ui::AcConsoleClass ui;
};
通常在头文件中声明的函数,VS会提示自动补全cpp中的实现。
但这次vs没有提示补全 buttonConnectClick函数,编译报错:
1>moc_AcCo ...
AF_UNIX与AF_LOCAL是一样的,只是历史遗留原因。
有SOCK_STREAM、SOCK_DGRAM、SOCK_SEQPACKET三种工作模式
1、SOCK_STREAM
流字节套,类似TCP,由于socket发送缓冲区的缘故,多次write数据会被缓冲区整合为一次底层send。禁用TCP Nagle算法的方式对AF_UNIX无效。
#include <netinet/in.h> // for IPPROTO_TCP
#include <netinet/tcp.h> // for TCP_NODELAY
int nodelay = ...
基于iptables的防火墙依赖环境
- 博客分类:
- python
安装:
libmnl-1.0.4
libnfnetlink-1.0.1
libnetfilter_queue-1.0.3
解压之后
./configure
make
make install
安装:
setuptools-41.0.1
pip-19.1.1.tar
scapy-2.4.2.tar
解压之后
python setup.py install
安装模块:
pip install netfilterqueue
如果报错:
Traceback (most recent call last):
File "I ...
一,函数对象
函数对象相比于函数的好处,是:
1)类或结构体中可以有自己的成员变量;
2)对于标准模版库STL算法中,比如配合std::for_each/find_if/sort/partition/remove_if等,使用方便;
#include <iostream>
#include <string>
using namespace std;
template <typename T>
int funcAdd(T t1, T t2) {
return t1 + t2;
}
template ...
C++11应用:对象池
- 博客分类:
- C/C++
ObjectPool.hpp:
#pragma once
#include <string>
#include <memory>
#include <functional>
#include <map>
using namespace std;
template <typename T>
class ObjectPool
{
template <typename... Args>
using Constructor = std::function<std::shared ...
iteye的资讯好像一年没有维护了,今天好几次写文章时503,很没有安全感呢,所以还是搬家吧,搬到CSDN去。
C++11应用:占位模式
- 博客分类:
- C/C++
有人称为命令模式,好比先定义了一个命令(行为+参数),然后把这个命令,加入到排队、传递等策略中,等到合适的时机再操作执行。而我觉得更像机器学习中的placeholder占位模式,把函数的地址和传入参数都绑定了,再手动操作执行:
#include <functional>
#include <type_traits>
template <typename R=void>
struct CommCommand
{
private:
std::function<R()> m_f;
public:
// 接受可 ...
C++11应用:访问者模式
- 博客分类:
- C/C++
template <typename... Types>
struct Packaging;
template <typename T, typename... Types>
struct Packaging<T, Types...> :Packaging<Types...>
{
// 通过using避免隐藏函数的startPacking同名方法
using Packaging<Types...>::startPacking;
virtual void startPacking(const T&) = ...