- 博客(33)
- 问答 (1)
- 收藏
- 关注
原创 使用docker run --cap-add参数解决权限问题(无法使用gdb调试、无法date -s修改时间)
问题 在docker容器中的centos无法使用gdb调试ptrace: Operation not permitted解决方法 参考:https://stackoverflow.com/questions/42029834/gdb-in-docker-container-returns-ptrace-operation-not-permitted在docker run 命令中...
2018-07-11 12:45:57 27047 3
原创 关于linux system函数调用遇到的坑
关于linux c++守护进程调用调用system函数我们的程序是守护进程,也就是说在最开始会设置一些信号处理,比如说...signal(SIGCHLD, SIG_IGN); //忽略子进程结束的信号...在这样的场景之下,我想实现这样的一个功能:通过调用system函数来执行一些系统命令,并根据系统命令的返回值是不是0来判断命令是否执行成功(正常情况下调用system函数...
2018-07-11 11:39:10 2607
原创 future 与async 的一个实例
#include <iostream>#include <future>#include <thread>#include <chrono>void print(char c) { for (int i = 0;i<10;i++) { std::cout <<c<<std::flush;...
2018-06-01 12:56:47 829
原创 关于linux c++守护进程调用调用system函数
我们的程序是守护进程,也就是说在最开始会设置一些信号处理,比如说...signal(SIGCHLD, SIG_IGN); //忽略子进程结束的信号...在这样的场景之下,我想实现这样的一个功能:通过调用system函数来执行一些系统命令,并根据系统命令的返回值是不是0来判断命令是否执行成功(正常情况下调用system函数,执行成功 return 0; 执行失败 return 正...
2018-05-31 17:16:47 1902
原创 tcpdump 抓包
tcpdump 命令tcpdump 抓包的一般步骤1) 通过-i命令指定一个网卡 如:tcpdump -i ens332) 过滤协议 协议类型如下tcpdump -i ens33 arptcpdump -i ens33 iptcpdump -i ens33 tcptcpdump -i ens33 udptcpdump -i ens33 icmp3) ...
2018-05-30 18:19:35 613
原创 find 常用指令
find 常用指令 find 寻找指定目录下查找子目录与文件过滤条件:文件类型find . -type f # 普通文件find . -type l # 链接文件find . -type d # 文件夹过滤条件:指定深度find . -mindepth 1 # 最小深度find . -maxdepth 3 # 最大深度过滤条件:指定文件大...
2018-05-29 17:51:18 218
原创 cannot find -lstdc++
解决CentOS 中 /usr/bin/ld: cannot find -lstdc++ 错误 使用如下命令安装 yum install glibc-static libstdc++-static
2018-05-10 11:23:20 1893
原创 mysql查询实例(查询玩家充值后第一笔购买的东西)
查询玩家充值后第一笔购买的东西这个查询初看比较棘手,仔细分析之后发现有比较巧妙的方式解决。 * 充值表 rechange uid date_time count 10086 2 2 10086 5 3 10086 7 4* 购买表 mall_flow uid date_time item_id 10086 5 1001 10
2018-04-24 00:35:12 1111
原创 kmp算法(十分钟理解)
本文并不打算细说kmp算法的算法实现,而是通过几张图来描述kmp算法的思想。现在我们将两个字符串左对齐,然后依次对比每位是否相等 当遇到不匹配时需要将P整体往右移动 现在需要移动1位然后依次对比每位是否相等,不相等就又需要整体往右移1位。那可以每次尽可能的向右多移动几位吗? 如果我们提前就可以算出移动几位后才会开始匹配,这样匹配就可以加速了。从上图可以看出移动两位后可以向...
2018-04-22 09:41:02 754
原创 yum安装配置samba服务器
安装yum install samba -y配置[global] workgroup = WORKGROUP server string = server100 netbios name = s100 security = user map to guest = Bad User passdb ba
2018-03-07 21:12:54 2277
原创 关于std::move与右值引用
关于std::move与右值引用 先来看一个例子class A { public: A(){ arr_ = new int[10](); len_ = 10; } A(A && a) { arr_ = a.arr_; a.arr_ = nullptr; len_ = a.len_; }
2017-12-15 21:41:50 609
原创 在centos7上面搭建ftp服务器
在centos7上面搭建ftp服务器要求:1、通过账号密码访问2、只能访问指定目录(不能访问上级目录)3、只能有读权限(当然你自己也可设置可读写)步骤一、环境1、安装yum install vsftpd2、关闭相应防火墙firewall-cmd --add-service=ftp --permanentsystemctl restart firewa
2017-10-09 13:45:28 5682
原创 博客笔记
git log控制输出的宽度 :http://www.cnblogs.com/dabaopku/p/4273166.htmlgit log格式控制:http://www.cnblogs.com/bellkosmos/p/5923439.html
2017-09-21 13:28:51 269
原创 返回值优化
编译器在默认情况下,是开启了返回值优化的struct A{ A(){ cout>>1"<<endl; } A(const A& b){ cout>>2"<<endl; } A(A&&b){ cout>>3"<<endl; } ~A() { cout<<"<<<"<<endl; } int a = 0;};A ret_A(){ A a; return
2017-09-13 23:59:08 947
原创 利用宏定义生成getset私有变量函数
利用宏定义生成getset私有变量。宏的本质就是简单的文本替换,而宏里面的##则是拼接字符串 如name##_ 就表示name_#include using namespace std;//首先定义get、set变量的宏#define GETSETVAR(type, name)\ private: \ type name##_;\ public: \ void
2017-08-26 11:04:46 739
原创 c++类型转换
类型转换一 dynamic_cast在继承体系中安全的向下转型,如何指针类型转型失败返回一个空指针,如果是引用则抛出一个异常#include using namespace std;class A{ virtual void fun() { }};class B:public A{public: void
2017-07-20 13:04:05 245
原创 boost多个关键字索引multi_index_container
根据不同的索引排序结构体。其中tag的意思是这定一个标记,如果不指定的话默认是从0开始,以下例子展示了这两种用法代码:#include #include #include #include #include using namespace boost;using namespace boost::multi_index;using namespace std;struct
2017-07-19 01:04:05 2450
原创 C++11线程池的实现
线程池是指定线程创建的个数,每个线程只是创建销毁一次。比起毫无限制的创建线程销毁线程效率更高。毕竟频繁的创建销毁线程会消耗系统资源,而且系统创建线程也是有上限的。基于上一篇的线程安全队列实现class thread_pool{private: atomic_bool done; //原子操作 vector work_thread;//工作线程 thr
2017-06-05 11:28:46 368
原创 C++11线程安全队列
多线程编程需要实现一个线程安全的队列,上锁,避免多个线程同时读写代码:/** * 线程安全的队列 */#ifndef __THREAD_SAFE_QUEUE__#define __THREAD_SAFE_QUEUE__#include #include #include #include template class thread_safe_queue{pr
2017-05-22 18:37:18 1589
原创 2017codecraft错误总结
错误1错误代码 int graph::get_grade(int grade){ int ki; //找到服务器档位高于need的最小档位 for(ki=server_count-1;ki>=0;ki--) { if(server[ki].out<grade) return ki+1; } }正确代码int graph::get_grade(int gr
2017-05-01 20:03:04 379
原创 C++Primer 笔记
第一章尽量不要使用using namespace std,使用:using std::cin;using std::cout;using std::endl;原因:名称冲突的可能性;本来只需要一棵树,你缺砍了整个森林。 int sum = 0; for (int val; std::cin >> val; sum += val);
2016-12-26 12:37:44 184
原创 c++中的图链表数据结构
templatestruct Edge{ int dest;//到下个点的距离 E cost;//到下个点的权重 Edge*link; Edge(){} Edge(int num,E weight):dest(num),cost(weight),link(NULL){};};templatestruct Vertex{ T data; Edge*adj;}templa
2016-07-20 17:40:16 768
原创 tcp/ip 多线程服务器端的实现(参考tcp/ip网络编程)
线程的切换比进程快的多,因为它不需要切换数据区和堆共享数据区和堆可以用来交换信息一、线程的创建pthread_create()函数#includeint prthread_create(pthread * thread,const pthread_attr_t * attr,void *(*start_routine)(void *),void * arg)//成功是返
2016-07-19 19:30:23 1452
原创 三、策略模式
由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!面向对象的好处:可维护,可扩展,可复用,灵活性好。原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。开放-封闭:类应该可以扩展(开放
2016-07-04 22:04:54 322
原创 二、工厂方法模式
由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!面向对象的好处:可维护,可扩展,可复用,灵活性好。原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。开放-封闭:类应该可以扩展(开放
2016-07-03 23:38:52 304
原创 一、简单工厂模式
由于手中没有面向对象的项目,于是决定把大话设计模式用c++写一遍加深映像!面向对象的好处:可维护,可扩展,可复用,灵活性好。原则常记心中:职责单一、开放-封闭、依赖倒转、迪米特--->(低耦合)职责单一:多个职责耦合在一起时一个职责变化可能会影响整体,为了维护更加灵活,尽量让功能原子化。对一个类而言,应该仅有一个引起它变化的原因。开放-封闭:类应该可以扩展(开放
2016-07-02 13:03:44 324
原创 使用linux的一些经验
ubuntu安装flashsudo cp ./libflashplayer.so /usr/lib/mozilla/plugins/安装sublimesudo add-apt-repository ppa:webupd8team/sublime-text-3sudo apt-get updatesudo apt-get install sublime-textu
2016-06-22 20:11:09 303
原创 socket
套接字地址结构体struct sockaddr_in{ unsigned short sin_family; unsigned short sin_port;//端口 struct in_addr sin_addr;//ip unsigned char sin_zero[8];};另外一个通用的结构struct sockaddr{
2016-06-21 12:54:37 331
原创 继承,多态
继承父类的构造方法只能调用,不能继承子类拥有父类非private的属性和功能,子类可以有自己的属性 和功能,#include#includeusing namespace std;class Animal{protected: string name=""; int shoutNum=3;public: Animal(string name) { this->n
2016-05-25 14:11:17 294
原创 1087. All Roads Lead to Rome (30)<最短路径,在最短路径上操作>
1087. All Roads Lead to Rome (30)时间限制200 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueIndeed there are many different tou
2016-03-04 08:41:45 430
原创 PAT 1003. Emergency (25)<最短路径,最大搜救人数>
1003. Emergency (25)As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams
2016-02-19 16:29:06 431
原创 第十三章 红黑树
红黑树(没有一条路径会比其他路径长2倍)是一种平衡二叉树,它在计算机中被广泛的应用!结点采用的结构:struct red-black{ int key; int color; struct red-black *p,*left,*right;//父,左,右}一、牢记红黑树的五大性质。红黑树的五大性质是学习红黑树最重要最基础的,一定要背下来,方便在插入删
2016-02-02 00:15:09 484
空空如也
如何自己做一个online judge
2016-04-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人