原创 時間函數

#include <time.h>time_t time(time_t *t); //獲取當前的系統時間,其值表示從1970年1月1日00:00:00到當前時刻的秒數。    time_t t;    t = time(NULL);    

原创 volatile

volatile 影響編譯器編譯的結果,volatile 變量是隨時可能發生變化的,與volatile變量有關的運算,不要進行編譯優化,以免出錯。(VC++ 在產生release版可執行碼時會進行編譯優化,加volatile關鍵字的變量有關

原创 I/O複用

I/O複用使得程序能同時監聽多個文件描述符,對提高程序的性能至關重要。I/O複用雖然能同時監聽多個文件描述符,但它本身是阻塞的。當多個文件描述符同時就緒時,如果不採取額外的措施,程序就只能按順序依次處理其中的每一個文件描述符,服務器程序看起

原创 RTP詳解

RTP協議分析第1章、RTP概述1.1、RTP是什麼    RTP全名是Real-time Transport Protocol(實時傳輸協議)。它是IETF提出的一個標準,對應的RFC文檔爲RFC3550(RFC1889爲其過期版本)。R

原创 __attribute__((packed))

__attribute__((packed))1. __attribute__ ((packed)) 的作用就是告訴編譯器取消結構在編譯過程中的優化對齊,按照實際佔用字節數進行對齊,是GCC特有的語法。這個功能是跟操作系統沒關係,跟編譯器有

原创 linux下編譯boost

編譯安裝編譯bjam:使用下面的命令創建boost自己的編譯工具bjam(目的是保證Boost在任何平臺上都能用bjam編譯),類似於GNU Make。./bootstrap.sh./bootstrap.sh --prefix=/home/

原创 C++引用

C++中引用到底是什麼?通常解釋是引用是變量的別名。這篇文章將解釋清楚,C++中根本就沒有叫做別名的東西。 在C/C++中,訪問一個變量只能通過兩種方式:1、通過值 訪問 / 傳遞變量2、通過地址 訪問 / 傳遞變量 (這種方法就是指針)除

原创 理解 Linux 配置文件

Linux 中有沒有一個標準的配置文件格式?沒有。不熟悉 Linux 的用戶會感到沮喪,因爲每個配置文件看起來都象是一個要迎接的新挑戰。在 Linux 中,每個程序員都可以自由選擇喜歡的配置文件格式。可以選擇的格式很多,從 /etc/she

原创 linux服務器程序規範

linux系統日誌服務器的調試和維護都需要一個專業的日誌系統。linux提供一個守護進程(syslogd)來處理系統日誌,現在linux系統上使用的是它的升級版(rsyslogd)。rsyslogd守護進程既能接收用戶進程輸出的日誌,又能接

原创 Linux設備驅動入門

設備驅動的作用任何一個計算機系統的運轉都是系統中軟硬件共同作用的結果,計算機系統的軟硬件互相成就了對方。應用軟件工程師需要看到一個沒有硬件的純粹的軟件世界,硬件必須被透明地呈現。驅動工程師來實現硬件對軟件工程師的隱形。設備驅動充當了硬件和應

原创 文件IO(Linux系統調用)

與操作系統有關,所有文件都可操作,無緩衝區文件IO:常規文件,目錄,字符設備,塊設備,管道,套接口,符號連接通過文件描述符訪問文件,最多可打開1024個文件,文件描述符最大爲1023。標準輸入、標準輸出、標準出錯 由shell默認打開,分別

原创 服務器端編程示例

int fd_set_nonblock(int fd){    int rv;    rv = fcntl(fd, F_GETFL, 0);    if(rv < 0){     printf("fcntl error\n");     r

原创 標準I/O(C庫函數)

與操作系統獨立,只能操作常規文件,有緩衝區常規文件:ASCII碼文件(文本文件)、二進制文件緩衝區:減少用戶和內核切換的次數,減小系統開銷。當對文件進行操作時,緩衝區纔會被開闢。當進程結束時自動調用fclose(),關閉已打開的文件,刷新緩

原创 top

VIRT:virtual memory usage     1、進程“需要的”虛擬內存大小,包括進程使用的庫、代碼、數據等     2、假如進程申請100m的內存,但實際只使用了10m,那麼它會增長100m,而不是實際的使用量 RES:re

原创 類型轉換

一 c中數據類型的隱式轉換1、隱式轉換    C在以下四種情況下會進行隱式轉換:       1、算術運算式中,低類型能夠轉換爲高類型。       2、賦值表達式中,右邊表達式的值自動隱式轉換爲左邊變量的類型,並賦值給他。       3