原创 二維數組作爲參數需要注意的問題

在用二維數組名作爲參數傳遞時容易出現Segmention Error。這是因爲不能正確爲二維數組中元素尋址的問題,正確的方法如下: 1. 用指向一維數組的指針變量,如下例子所示: [cpp] view plain copy

原创 Linux 異步IO

Linux® 中最常用的輸入/輸出(I/O)模型是同步 I/O。在這個模型中,當請求發出之後,應用程序就會阻塞,直到請求滿足爲止。這是很好的一種解決方案,因爲調用應用程序在等待 I/O 請求完成時不需要使用任何中央處理單元(CPU)。但

原创 linux signal

最近同事的程序設計過程中用到了Linux的signal機制,從而引發了我對Linux中signal機制的思考。Signal機制在Linux中是一個非常常用的進程間通信機制,很多人在使用的時候不會考慮該機制是具體如何實現的。signal機

原创 修改進程名字

每一個c程序都有個main函數,作爲程序啓動入口函數。main函數的原型是int main(int argc , char *argv[]);其中argc表示命令行參數的個數;argv是一個指針數組,保存所有命令行字符串。Linux進程

原创 文件IO

在Linux 開發中,有幾個關係到性能的東西,技術人員非常關注:進程,CPU,MEM,網絡IO,磁盤IO。本篇文件打算詳細全面,深入淺出。剖析文件IO的細節。從多個角度探索如何提高IO性能。本文儘量用通俗易懂的視角去闡述。不copy內核代

原创 setsockopt設置超時需要注意

原文:http://blog.csdn.net/qinmi/article/details/1523081 1.closesocket(一般不會立即關閉而經歷TIME_WAIT的過程)後想繼續重用該socket: BOOL bReu

原创 sendfile

如今幾乎每個人都聽說過Linux中所謂的"零拷貝"特性,然而我經常碰到沒有充分理解這個問題的人們。因此,我決定寫一些文章略微深入的講述這個問題,希望能將這個有用的特性解釋清楚。在本文中,將從用戶空間應用程序的角度來闡述這個問題,因此有

原创 initcall的執行順序

Init.h中有相關initcall的啓動次序,在system.map中可看出具體的__initcall指針的前後次序   #define pure_initcall(fn) __define_initcall("0",fn,0)

原创 filter, mmap, reduce

Python內置了一些特殊函數,這些函數很具python特性。可以讓代碼更加簡潔。 可以看例子: 1 filter(function, sequence): str = ['a', 'b','c', 'd'] def fun1(s): r

原创 nginx 的安裝

要在nginx上開發,所以先了解下這個是幹嘛的..百度一下很多 編譯源碼需要的組件 1.zlib 2.pcre 3.openssl 使用ubuntu的話.可以直接使用 sudo apt-get install zlib s

原创 VIm 替換

vi/vim 中可以使用 :s 命令來替換字符串。該命令有很多種不同細節使用方法,可以實現複雜的功能,記錄幾種在此,方便以後查詢。      :s/vivian/sky/ 替換當前行第一個 vivian 爲 sky      :s/viv

原创 xrange -->range

在Python中range和xrange是不同的,range返回值是:一個從0開始指定長度的連續整數序列。然而,xrange返回一個"xrange 對象",該對象非常類似於迭代器。舉個例子: range(100) xrange(100)

原创 Gluster一些級別知識

1:. 基本概念 (1) brick:The brick is the storage filesystem that has been assigned to a volume. (2) subvolume:A brick af

原创 fdisk

Linux系統由於數據累計增長、前期存儲規劃不合理等諸多因素,出現存儲不夠用的情況時,此時就需要擴展邏輯分區或添加新的邏輯分區。下面介紹一下通過使用fdsik添加新的邏輯分區。   首先使用df命令檢查文件系統的磁盤空間佔用情況 [

原创 比較kmalloc/vmalloc/get_free_pages

對於提供了MMU(存儲管理器,輔助操作系統進行內存管理,提供虛實地址轉換等硬件支持)的處理器而言,Linux提供了複雜的存儲管理系統,使得進程所能訪問的內存達到4GB。 進程的4GB內存空間被人爲的分爲兩個部分--用戶空間與內核空間。