原创 冒泡+直接插入+ 快速排序
一,冒泡法 (按從小到大排序舉例) 原理:通俗的講,就是一遍一遍地,不斷地把較大的數往下沉。 途徑:交換兩個數的位置。 舉例: 7 2 5 8 3 第一遍,把a[0] 與 a[1]比較,7 > 2, so, sw
原创 socket、 send、recv、阻塞相關
一、recv和recvfrom的區別 原文鏈接: http://blog.csdn.net/jiangzhuzhu/article/details/5686517 2015.3.02 2015.8.18 2010-06-22
原创 字符串反轉+ 大數相加 + IP分類
C語言基礎隨着工作,慢慢遺忘的一乾二淨,簡單實現,不考慮效率,留作備忘。 一、反轉 char *str_reserve11(char *src) { char tmp; char *start = src; char *end
原创 編譯器優化選項帶來的影響邏輯的問題
最近遇到了編譯優化選項竟然會影響到代碼邏輯的事,然後上網看到一篇還不錯的文章,以防備用,粘貼如下: 原文鏈接地址:點擊打開鏈接 正文一 我們知道在C語言編譯時,有那麼幾個常用的優化編譯選項,分別是-O0,-O1,-O2,-O3以及-Os
原创 關於Linux c 語言中遞歸函數的使用的較深層問題
原則上講,爲了代碼的結構及易於維護性,通常被告知儘量少在代碼中使用goto、遞歸等影響代碼結構的代碼。 可是,有時候用遞歸函數的思想確實可以使問題的思路非常清晰。 由於工作中要解決vlan用戶態解析portlist的bug,原來解析
原创 雜亂工作筆記的整理(一)
本無閒暇,奈何正在調試的gmrp命令行部分架構已經基本完成,各種必要的read事件及update事件也都加入到相應的thread add裏邊了,,可是從pc段構造gmrp報文,在dev.c之前的bcm-net裏用debug driver
原创 C語言頭文件包含和編寫的幾個基本規則
總想着把所有的頭文件都塞到一個頭文件裏邊,然後,所有.c文件只包含這一個混雜的頭文件就行了,也不用注意太多,, 但是這樣好像不行,摘抄一篇文章備份一下,覺得寫的不錯, 尊重原創,原文鏈接:http://blog.csdn.net/is
原创 也談孤兒進程與殭屍進程
之前調bug時會看到進程的狀態是‘Z’,由此知道殭屍進程,將查的資料略作總結,以備後用。 先上定義: 孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那麼那些子進程將成爲孤兒進程。 孤兒進程將被init進程(
原创 是oom-killer還是接收了SIGHUP信號 導致進程掛死
最近在定位用戶態的一個進程kerneld進程意外掛死的情況,但無法進行復現,只從代碼的角度分析掛死原因, 感覺應該是意外接收了某個信號,處理信號時exit了,,要麼就是normal內存塊中剩餘內存大於low小於Middle, 造成
原创 鏈表(找中間+判循環+逆序+)
一、快速找到鏈表的中間節點 1、常規方法:遍歷所有節點L,找到中間 L/2,遍歷L/2, 搞定。 2、較快速 : fast和slow都指向頭,fast每次跳2個node,slow跳1個,當fast跳
原创 extern 較深入的用法-全局-靜態
額外,說明 0,定義 相當於 聲明+分配內存; 聲明 就是 聲明; 只要在文件裏 聲明 了 某個變量,, 就可以確保 ‘編譯’ 能通過,若其他文件裏有 定義,則也可以確保 ‘鏈接
原创 端口鏡像 相關注意事項備忘
bcm56224交換芯片: 端口鏡像在具體實現上,可直接調用broadcom的sdk,用戶態命令行可參照其他廠商: 1、可以實現跨vlan的端口鏡像; 2、不能鏡像 從cpu發出的報文; 3、可以實現 n====>1;多==>多(多個一
原创 關於用strace工具定位vrrpd進程有時會掛死的bug
只做工作總結備忘之用。 正在燒鏡像,稍總結一下進來改bug遇到的問題。 一個項目裏要用到L3 switch的nat,vrrp功能,但實地測試中偶然出現write file掛死的情況,但不是必現。交付在即,於是加調試信息,反覆跑
原创 vrrp 協議相關備忘
結合網盤文檔,已經基本全面介紹了vrrp相關的東西; 尊重原創,以下是本文檔原文鏈接: http://my.oschina.net/moooofly/blog/155491?p=1 我司(很有錢)vrrp的某些實現細節: 1、ma
原创 linux route 使用 淺析
2015-06-09 昔日自由 注意: 使用route命令 主要操作 linux內核 路由表,從而操縱路由邏輯以下操作均在三層交換機上(linux內核)嚴格的講,該linux shell下的 route命令肯定對應交換機配置視圖下的某