原创 Linux 獲取屏幕分辨率與窗口行列數(c/c++)

獲取當前分辨率 #include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<sys/mman.h> #include<sys/ioctl.h> #in

原创 手動實現讀寫鎖(線程級)

讀寫鎖是共享獨佔鎖。 讀鎖是共享鎖:讀的同時不能寫,但同時可以多個進程一起讀。 寫鎖是獨佔鎖:同時只能有一個進程進行寫。 利用庫函數 寫模式: pthread_rwlock_wrlock(&rwlock); //加寫鎖 寫

原创 打印文件路徑(打印樹結構類似)

文件結構本身就是一個樹形結構,下面所用的思想就可以用在樹結構上。 利用一個數組記錄從根到當前節點的路徑例如【root-node1-node2-…-node_now】。如果當前節點node_now沒有子節點,就回退數組,刪除最後一

原创 最簡單跨平臺的日誌庫

這裏是我之前最常用的日誌庫的代碼,所有操作幾乎都是通過宏實現。只需要修改 fprintf 的參數就可以很容易的重定向的不同的文件或者終端。 具有以下特點: 代碼簡單易懂,全部是宏的實現 跨平臺,支持Android,Linux,mac

原创 linux文件鎖

linux文件鎖建議鎖、強制鎖、記錄鎖[fcntl()、lockf、flock的區別](http://blog.chinaunix.net/uid-28541347-id-5678998.htmlflock 函數函數原型flock創建

原创 Linux 獲取屏幕分辨率與窗口行列數(c++)

獲取當前分辨率 #include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<sys/mman.h> #include<sys/ioctl.h> #incl

原创 linux 信號機制

文章目錄1. 實時信號非實時信號2. 信號狀態:3. 信號生命週期:4. 信號的執行和註銷信號掩碼和信號處理函數的繼承信號處理函數的繼承信號掩碼的繼承sigwait 與多線程sigwait函數:apis信號發生函數信號處理函數信號掩碼

原创 共享文件夾

分成4種情況,win->win映射、linux->linux映射、linux->win、win->linux。 這裏只介紹後面兩種情況。 linux映射到windows 虛擬機可以安裝vmware-tools,開啓文件夾共享 安

原创 一個奇怪的內存賦值

還沒理解這其中的奧祕,有知道說下 #include <stdio.h> #include <string.h> int main() { char str_t[]="This String comes from t";//初始

原创 程序單實例運行

說明 有時我們需要程序同時只能有一個實例在運行,或是受於資源限制或是受於鎖或者其他原因。 因此,需要一直機制在程序啓動時候判斷是否有別的實例已經在運行。這裏有集中方案。 用bash腳本或者supervisor之類管理工具判斷,這種受

原创 記一次函數異常(getopt_long)

前言 以下參考博客以及man手冊。 getopt_long函數,getopt_long函數包含了getopt函數的功能,並且還可以指定“長參數”(或者說長選項),與getopt函數對比,getopt_long比其多了兩個參數: i

原创 簡單地 Makefile 書寫

注意事項 每個標籤分支前都不能用空格,必須用tab 標籤外調用bash命令用 $(shell …),標籤內可以正常使用 標籤後可以指定其他標籤,執行順序是先執行其他標籤,而後在執行自己 比如 all: clean 會先執行clea

原创 學習go的一些筆記

反射 reflect type CfgSt struct{ Match *int64 `ini:"match"` Desc string `ini:"desc"` Level *int64 `ini:"level"` } 如果結

原创 手動實現讀寫鎖

讀寫鎖是共享獨佔鎖。 讀鎖是共享鎖:讀的同時不能寫,但同時可以多個進程一起讀。 寫鎖是獨佔鎖:同時只能有一個進程進行寫。 利用庫函數 寫模式: pthread_rwlock_wrlock(&rwlock); //加寫鎖 寫寫寫

原创 啊啊啊啊

打印完整路徑(golang) func Walkdir(root string, record []string, depth int64) { dirs, _ := ioutil.ReadDir(root) hasSubdir