原创 linux網絡編程中的pol和epolll函數總結

       poll()函數:這個函數是某些Unix系統提供的用於執行與select()函數同等功能的函數,下面是這個函數的聲明:       #include <poll.h>       int poll(struct pollfd

原创 assert()函數

assert() 宏用法 注意:assert是宏,而不是函數。在C的assert.h頭文件中。 assert宏的原型定義在<assert.h>中,其作用是如果它的條件返回錯誤,則終止程序執行,原型定義: 1 2 #incl

原创 在linux的shell腳本中,雙引號,單引號,以及反單引號的作用介紹,以及env以及set的作用

     首先單引號與雙引號的最大不同就是雙引號可以保有變量的內容,但是單引號僅能是一般的字符而不會有特殊的字符      如變量str=name     那麼str1=“$str is”,之後顯示str的結果是name is     如

原创 linux文件系統的理解(1)

     磁盤在使用之前需要格式化,格式化是在磁盤中建立文件系統,他們將確定文件的存儲方式和索引方法,確定磁盤空間分配和回收方法。      在linux系統中文件系統的存儲有<目錄--i節點--數據塊>三級結構,其中目錄存儲了文件的層次

原创 用位運算求一個數的絕對值

     我們知道在我們對一個數進行位運算的時候,是在這個數的補碼上進行的,對於補碼我們知道,正數的補碼是原碼,負數的補碼爲原碼除了最高位的符號位,取反,然後加1。把補碼轉換成原碼的時候,正數還是原碼,負數時把補碼除了符號位取反然後加1(

原创 自己寫的atoi函數和itoa函數

atoi函數的實現源碼: #include <iostream> using namespace std; enum status{invalid=0,valid}; bool result_status=invalid;//最後最爲輸入

原创 信號量的使用步驟

信號量的使用如下步驟小結 1.聲明信號量sem_t sem1; 2.初始化信號量sem_init(&sem1,0,1); 3.sem_post和sem_wait函數配合使用來達到線程同步 4.釋放信號量int sem_destroy (s

原创 對linux中多線程編程中pthread_join的理解

    在Linux中,默認情況下是在一個線程被創建後,必須使用此函數對創建的線程進行資源回收,但是可以設置Threads attributes來設置當一個線程結束時,直接回收此線程所佔用的系統資源,詳細資料查看Threads attri

原创 memmove源碼實現

函數原型: void *memmove(void *dest, const void *src, unsigned int count) 參數說明:dest爲目的字符串,src爲源字符串,count爲要拷貝的字節數。 所在庫名:#incl

原创 SQL Select語句完整的執行順序

1、from子句組裝來自不同數據源的數據; 2、where子句基於指定的條件對記錄行進行篩選; 3、group by子句將數據劃分爲多個分組; 4、使用聚集函數進行計算; 5、使用having子句篩選分組

原创 在遇到可以用遞歸解決的問題,但是又不讓用遞歸怎麼辦

     我們知道,用遞歸方法可以快速,簡潔地解決一些問題,但是他的空間開銷也比較大,我們習慣於用遞歸解決各種問題,但是在一些應用場景下要求我們不能使用遞歸,我們發現這時候舉手無措,這時候怎麼辦呢???記

原创 海盜分硬幣問題總結

傳說,從前有五個海盜搶得了100枚金幣.他們通過了一個如何確定選用誰的分配方案的安排.即:1.抽籤決定各人的號碼(1,2,3,4,5);2.先由1號提出分配方案,然後5個人表決.當且僅當超過半數人同意時,方案纔算被通過,否則他將 被扔入大

原创 用c++編寫一個不能被繼承的類(但是可以在類外部定義該類的對象)

        據我們知道,我們只要把類的構造函數和析構函數定義爲private類型,那麼就不能夠在外部建立給類的對象,也就不能以給類爲基類進行繼承,因爲如果繼承,建立對象的時候將要調用基類的構造函數,但是因爲爲private,所以派生類

原创 二分查找的感悟

    今天在看v_JULY_v寫的二分查找實現(Jon Bentley:90%程序員無法正確實現)一文,感悟頗深,在看文章之前自己心想二分查找不是相當的easy,但是真的在讀完文章,然後和自己寫的比較之後,發現我就是那90%中的一員,深

原创 placement new

1. placement new的含義 placement new 是重載operator new 的一個標準、全局的版本,它不能夠被自定義的版本代替(不像普通版本的operator new 和 operator delete能夠被替換)