原创 C語言變長數組data[0]【總結】

1、前言   今天在看代碼中遇到一個結構中包含char data[0],第一次見到時感覺很奇怪,數組的長度怎麼可以爲零呢?於是上網搜索一下這樣的用法的目的,發現在linux內核中,結構體中經常用到data[0]。這樣設計的目的是讓數組長度

原创 IO多路複用之poll總結

1、基本知識   poll的機制與select類似,與select在本質上沒有多大差別,管理多個描述符也是進行輪詢,根據描述符的狀態進行處理,但是poll沒有最大文件描述符數量的限制。poll和select同樣存在一個缺點就是,包含大量文

原创 IO多路複用之epoll總結

1、基本知識   epoll是在2.6內核中提出的,是之前的select和poll的增強版本。相對於select和poll來說,epoll更加靈活,沒有描述符限制。epoll使用一個文件描述符管理多個描述符,將用戶關係的文件描述符的事件存

原创 select、poll、epoll之間的區別總結

select,poll,epoll都是IO多路複用的機制。I/O多路複用就通過一種機制,可以監視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程序進行相應的讀寫操作。但select,poll,epoll本質上都是同步I

原创 Redis小知識點記錄

key 的自動創建和刪除 我們無需在放入元素前創建空的list,也無需在list沒有元素的時候刪除它。在 list 爲空時刪除 key,並在用戶試圖添加元素(比如通過 LPUSH)而鍵不存在時創建空 list,是 Redis 的職責。 這

原创 使用Redis的分佈式鎖

    分佈式鎖在許多"不同的進程必須以獨佔的方式對共享資源進行操作"的場景中是非常有用的原語。(原語 操作系統或計算機網絡用語範疇。是由若干條指令組成的,用於完成一定功能的一個過程)     有許多庫和博客文章描述瞭如何使用Redis實

原创 C語言基礎之十進制與二進制轉換

一、二進制 八進制 十進制 十六進制 二進制:逢二進一           數字只包含  0 1                                                  例:1001 八進制:逢八進一     

原创 protobuf之string bytes的區別

protobuf提供了多種基礎數據格式,包括string/bytes。從字面意義上,我們瞭解bytes適用於任意的二進制字節序列。然而對C++程序員來講,std::string既能存儲ASCII文本字符串,也能存儲任意多個\0的二進制序列

原创 CentOS 7安裝 ifconfig 管理命令

1. 安裝的需求背景 我們知道ifconfig 命令可以用於查看、配置、啓用或禁用指定網絡接口,如配置網卡的IP地址、掩碼、廣播地址、網關等,功能不可謂不豐富。 此命令的功能和Wndows系統的ipconfig非常類似。 但是,CentO

原创 Linux列出一個程序所需要得動態鏈接庫命令 --- ldd

ldd本身不是一個程序,而僅是一個shell腳本:ldd可以列出一個程序所需要得動態鏈接庫(so) 我們可以用which命令找到ldd的位置: $ which ldd /usr/bin/ldd 在 ldd 命令打印的結果中,“=>”左邊的

原创 Linux Centos7下安裝+使用Shadowsocks客戶端

1.  安裝Shadowsocks客戶端 安裝epel擴展源和pip $ sudo yum -y install epel-release $ sudo yum -y install python-pip $ sudo pip ins

原创 Centos 7裝機後不能聯網問題解決

Step1、修改配置文件 使用 vi 編輯器修改 /etc/sysconfig/network-scripts/ifcfg-eth0 進入 /etc/sysconfig/network-scripts 目錄 $ cd /etc/sysc