原创 find 常用指令

find 常用指令 find 尋找指定目錄下查找子目錄與文件 過濾條件:文件類型 find . -type f # 普通文件 find . -type l # 鏈接文件 find . -type d # 文件夾 過濾條件:指定深度

原创 future 與async 的一個實例

#include <iostream> #include <future> #include <thread> #include <chrono> void print(char c) { for (int i = 0;i<10

原创 c++類型轉換

類型轉換一 dynamic_cast 在繼承體系中安全的向下轉型,如果指針類型轉型失敗返回一個空指針,如果是引用則拋出一個異常 #include <iostream> using namespace std; class A {

原创 mysql查詢實例(查詢玩家充值後第一筆購買的東西)

查詢玩家充值後第一筆購買的東西 這個查詢初看比較棘手,仔細分析之後發現有比較巧妙的方式解決。 * 充值表 rechange uid date_time count 10086 2 2 10086 5 3 10086

原创 C++11線程池的實現

線程池是指定線程創建的個數,每個線程只是創建銷燬一次。比起毫無限制的創建線程銷燬線程效率更高。畢竟頻繁的創建銷燬線程會消耗系統資源,而且系統創建線程也是有上限的。 基於上一篇的線程安全隊列實現 class thread_pool { pr

原创 boost多個關鍵字索引multi_index_container

根據不同的索引排序結構體。其中tag的意思是指定一個標記,如果不指定的話默認是從0開始,以下例子展示了這兩種情況 代碼: #include <string> #include <iostream> #include <boost/mul

原创 關於std::move與右值引用

關於std::move與右值引用 先來看一個例子 class A { public: A(){ arr_ = new int[10](); len_ = 10; } A(A &&

原创 yum安裝配置samba服務器

安裝 yum install samba -y 配置 [global] workgroup = WORKGROUP server string = server100 netbios

原创 使用docker run --cap-add參數解決權限問題(無法使用gdb調試、無法date -s修改時間)

問題 在docker容器中的centos無法使用gdb調試 ptrace: Operation not permitted 解決方法 參考:https://stackoverflow.com/questions/42029834/gdb-

原创 tcpdump 抓包

tcpdump 抓包的一般步驟 1) 通過-i命令指定一個網卡 如: tcpdump -i ens33 2) 過濾協議 協議類型如下 tcpdump -i ens33 arp tcpdump -i ens33 ip tcpdump -i

原创 利用宏定義生成getset私有變量函數

利用宏定義生成getset私有變量函數。 宏的本質就是簡單的文本替換,而宏裏面的##則是拼接字符串 如name##_ 就表示name_ #include <iostream> using namespace std; //首先定義g

原创 關於linux c++守護進程調用調用system函數

我們的程序是守護進程,也就是說在最開始會設置一些信號處理,比如說 ... signal(SIGCHLD, SIG_IGN); //忽略子進程結束的信號 ... 在這樣的場景之下,我想實現這樣的一個功能: 通過調用system函數來執行一些

原创 cannot find -lstdc++

解決CentOS 中 /usr/bin/ld: cannot find -lstdc++ 錯誤 使用如下命令安裝 yum install glibc-static libstdc++-static

原创 kmp算法(十分鐘理解)

本文並不打算細說kmp算法的算法實現,而是通過幾張圖來描述kmp算法的思想。 現在我們將兩個字符串左對齊,然後依次對比每位是否相等 當遇到不匹配時需要將P整體往右移動 現在需要移動1位然後依次對比每位是否相等,不相等就又需要整