原创 C++中const的實現機制深入分析
問題 C語言以及C++語言中的const究竟表示什麼?其具體的實現機制又是如何實現的呢? 本文將對這兩個問題進行一些分析,簡單解釋const的含義以及實現機制。 問題分析 簡單的說const在C語言中表示只讀的變量,而在C++語言中表示常
原创 使用互斥鎖解決生產者與消費者問題
互斥鎖:上鎖與解鎖 互斥鎖指代相互排斥,是最基本的同步形式,它可用於保護臨界取,以保證任何時刻只有一個線程在執行其中的代碼。它可以用來同步一個進程內的各個線程。如果互斥鎖存放在多個進程間共享的某個內存區中,它也可以用於這些進程間的同步。它
原创 編譯linux內核
內核編譯實驗環境:Ubuntu 10.04 內核版本 2.6.32-36-generic 過程概述: 下載源碼:下載鏈接:http://www.kernel.org/pub/linux/kernel/v2.6/ 配置內核:ma
原创 Ubuntu下星際譯王/字典的安裝實例解
Ubuntu下安裝星際譯王/字典 abc@abc:~$ sudo apt-get install stardict 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關係樹 讀取狀態信息... 完成 正在初始化軟件包狀態... 完成
原创 用O(nlog(n)實現最長遞增子序列問題
問題描述 輸入一串數字,或數組,如-5, 1, -3, -1, -2, 1, 4, 8, 9, 7,則該數組的最長遞增子序列之一(注意,最長遞增子序列有時候不止一個)爲-5,-3, -1, 1, 4, 8, 9 解決方案: 有兩種
原创 虛函數詳解
C++ 虛函數表解析 前言 C++中的虛函數的作用主要是實現了多態的機制。關於多態,簡而言之就是用父類型別的指針指向其子類的實例,然後通過父類的指針調用實際子類的成員函數。這種技術可以讓父類的指針有“多種形態”,這是一種泛型技術。所
原创 linux中close與shutdown的區別
1. close 把描述符的引用計數減一,僅在該計數變爲0時才關閉套接字。而shutdown可以並以不管引用計數就激發TCP的正常連接終止序列 2. close終止讀和寫兩個方向的數據傳送,而shutdown可以指定哪個方向被關閉,讀端
原创 C++的類型轉換符
使用標準C++的類型轉換符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。 1 static_cast 用法:static_cast < type-id > ( expre
原创 linux命令--netstat
netstat命令 netstat,用來打印網絡上的連接,路由表,接口信息,僞連接和多播成員信息 用法摘要 netstat -t | -u | -w | -l | -a | -n | -o | -p | - N | -h
原创 linux進程間通信--信號量
概述 信號量是一種用於提供不同進程間或一個給定進程的不同線程間同步手段的原語。下圖表示的是由兩個進程使用的一個二值信號量 一個進程可以在信號量執行三種操作: 1. 創建(create)一個信號量,這要求調用者指定初始值,對於二值信
原创 linux常用命令
1、 chown chgrp chmod 2、 --time=atime(訪問時間) ctime(權限或屬性修改時間) mtime(內容被修改時間) --full-time 3、新建文件默認權限爲666,目錄爲777 um
原创 C++中delete, new以及new [], delete[]操作符內幕
人們有時好像喜歡故意使C++語言的術語難以理解。比如說new操作符(new operator)和operator new的區別。 當你寫這樣的代碼: string *ps = new string("Memory Manageme
原创 DNS原理及其解析過程
DNS原理及其解析過程精彩剖析 網絡通訊大部分是基於TCP/IP的,而TCP/IP是基於IP地址的,所以計算機在網絡上進行通訊時只能識別如“202.96.134.133”之類的IP地址,而不能認識域名。我們無法記住10個
原创 UNIX網絡編程--設置I/O超時
1. 調用alarm,它在指定超時期滿時產生SIGALRM信號。這個方法涉及信號處理,而信號處理在不同的實現上存在差異,而且可能干擾進程中現有的alarm調用 2. 在select中阻塞等待I/O(select有內置的時間限制),以此代替
原创 DNS原理及其解析過程
DNS原理及其解析過程精彩剖析 網絡通訊大部分是基於TCP/IP的,而TCP/IP是基於IP地址的,所以計算機在網絡上進行通訊時只能識別如“202.96.134.133”之類的IP地址,而不能認識域名。我們無法記住10個