原创 插入相同“鍵值”key時Linux 內核中紅黑樹的使用

Linux 內核中提供了一個通用紅黑樹的實現(位於文件rbtree.h和rbtree.c),在日常的項目開發中,很多人也是直接將其代碼取出來,然後自己“包裝”一下就使用了。    近期的使用中我有了一個這樣的疑問,就是如果插入相同的key

原创 Intel硬件指令加速計算CRC32

純軟件實現CRC32經常是藉助於查表實現的(https://pycrc.org/一個可以生成CRC C語言計算代碼的工具),當計算CRC32過於頻繁時可通硬件指令優化以減少對CPU的佔用。目前Intel支持的用於計算CRC的有CRC32和

原创 大數問題 hdu 1002

大數問題通常用數組來模擬計算。下面給出hdu 1002 的代碼。   #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LEN 1000 int

原创 GDB總結

1,調試其他機器上生成的core dump 文件,遇到無法解析的符號怎麼辦? 典型的是,bt查看函數調用幀棧時,顯示出“??”。 (gdb) bt #0  0x00007f4187251925 in raise () from /lib6

原创 libuuid.so 崩潰問題

前段時間使用的Cetos 6.3有程序崩潰在了uuid_generate () from /lib64/libuuid.so.1,現象很是詭異,libuuid是Centos util-linux工具包中自帶的一個系統庫,怎麼可能在這裏出問

原创 hdu-3786-找出直系親屬

Problem Description 如果A,B是C的父母親,則A,B是C的parent,C是A,B的child,如果A,B是C的(外)祖父,祖母,則A,B是C的grandparent,C是A,B的grandchild,如果A,B是C

原创 wireshark 解析器開發

    wireshark支持2種形式的解析器,內建的解析器(built-in dissector)和插件解析器(plugin dissector)。內建的解析器隨wireshark一起發佈,而插件解析器可以將生成的.dll(window

原创 hdu-1251-統計難題

Problem Description Ignatius最近遇到一個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),現在老師要他統計出以某個字符串爲前綴的單詞數量(單詞本身也是自己的前綴). Input 輸入數據的

原创 磁盤槽位和盤符綁定方案

Linux下的SCSI設備都是按照設備的發現順序命名的,對於磁盤盤符名稱就是sda,sdb,sdc等等。存儲設備一般都配有很多塊磁盤,盤符名稱和槽位號沒有對應關係,當磁盤插入,拔出時對應的盤符可能會變化。這給使用和運維帶來很多不便。 對於

原创 LeetCode-3-Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters. Examples: Given "abcabcbb",

原创 恢復Linux下被刪除的文件

Most systems administrators have experienced a situation where a vital file has accidentally been deleted without a rec

原创 使用setvbuf更改printf的默認buffer 行爲

    有3種buffer行爲,“不緩衝”,“基於塊的緩衝”和“基於行的緩衝”。stdout(printf)默認是基於行的緩衝,即寫到stdout的字符都會被緩衝起來直到一個換行符輸出的時候,這些字符纔會被打印出來;標準錯誤輸出stder

原创 eventfd - create a file descriptor for event notification

NAME         top eventfd - create a file descriptor for event notification SYNOPSIS         top #inclu

原创 SELINUX 導致rsync無法同步文件

問題描述: 寫了一個腳本update.sh調用rsync同步更新服務器上的文件,將update.sh加入Linux 自啓動腳本/etc/rc.local由系統自動拉起後,rsync會無緣無故的失敗,在終端手動運行update.sh就可以正

原创 設備驅動綁定和解綁

One new feature in the 2.6.13-rc3 kernel release, is the ability to bind and unbind drivers from devices manually from