原创 linux系統文件目錄概述
一般的Linux發行版本都含有如下幾個目錄: 1. /bin 用於存放普特用戶可執行的命令,系統中的任何用戶都可以執行該目錄中的命令 如ls、cp、mkdir等命令 2. /boot Linux的內核及啓動系統時
原创 linux 進程結構
linux一個進程有3部分組成:代碼段,數據段,堆棧段。 代碼段存放程序的可執行代碼。數據段存放程序的全局變量,常量,靜態變量。 堆棧段中的堆用於存放動態分配的內存變量;堆棧段中的棧用於函數調用,存放函數的參數,函數內部定義的局部變量。
原创 在Eclipse中運行C++程序出現"Launch failed. Binary not foud"和"Program file not Specified"的問題
第一步:右鍵點擊工程,選擇 Properties->C/C++ Build->Settings->Binary Parser, 勾選 "PE Windows Parser" 。 第二步:運行配置界面中下,在C/C++ Appliactio
原创 linux wait函數用法
【轉自:http://hi.baidu.com/_hstyle/blog/item/fb7b12c4447390af8226acc5.html
原创 linux 創建線程問題undefined reference to 'pthread_create'
報錯:undefined reference to 'pthread_create' 問題原因: pthread 庫不是 Linux 系統默認的庫,連接時需要使用靜態庫 libpthread.a,所以在使用pthread_crea
原创 linux下fork()函數用法
fork()函數用於創建子進程。進程創建成功後,函數返回兩次值,一次返回值爲0,代表子進程在運行, 另一次返回子進程的ID,代表當前父進程 正在運行。例如下面的程序: /* * Test.c * * Created on: Oct
原创 插入排序
插入排序:每次從待排序的數中拿出一個作爲key,和前面的數字依次開始比較,如果待排序的數字小,則將比較的數後移,然後繼續比較,直到找到小於key的數字。 代碼: #include <stdio.h> void insert_sort(in
原创 =號運算符的重載
#include <stdio.h> #include <iostream> #include <string> using namespace std; class A { public: A(char *s) { ptr=
原创 普通函數重載和友元函數重載
#include <stdio.h> #include <iostream> #include <string> using namespace std; class A { public: A(int a,int b) {
原创 堆排序
堆排序: 1.將待排序記錄按照堆的定義建初堆,並輸出堆頂元素。 2. 調整剩餘的記錄序列,利用篩選法將前n-i個元素重新篩選建成一個新堆,在輸出堆頂元素 3. 重複執行,進行n-1次篩選。 代碼實現 #include<stdio.h> #
原创 virtual關鍵字用法總結
virtual關鍵字的作用:指示c++編譯器對該函數的調用進行動態聯編。只有當訪問虛函數是通過基類指針s時纔可以獲得運行時的動態性。 1. 在基類中,必須把成員函數定義爲虛函數,即加關鍵字"virtual" 2. 在派生類中,虛函數被重新
原创 BT協議各種消息
1. 客戶端與一個peer建立TCP連接後,首先向peer發送握手消息,peer收到握手消息後迴應一個握手消息。 l 握手消息是一個長度固定爲68字節的消息。消息的格式如下: <pstrlen><
原创 函數指針、指針數組與數組指針
指針數組:首先它是一個數組,數組的元素都是指針,數組佔多少個字節由數組本身決定。 數組指針:首先它是一個指針,它指向一個數組,在32位系統下永遠佔4個字節。 函數指針: A. int *p1[10]
原创 valatile用法
volatile是一種類型修飾符,用它修飾的變量表示可以被某些編譯器未知的因素更改,比如操作系統,硬件或者其他線程等。 遇到這個關鍵字聲明的變量,編譯器對訪問改變量的代碼就不再進行優化,從而可以提供對特殊地址的穩定穩定。 v
原创 4.關鍵算法及策略
1. 流水線作業: 當客戶端向peer發送數據請求時(即發送request消息),一次請求多個slice(即一個數據包發送多個request消息請求多個slice)。假如客戶端一次 只發送一個slice請求,則peer給客戶端發