Time of Update: 2018-12-03
單播,廣播和多播 一.引言1.有三種IP地址:單播地址,廣播位址和多播地址。2.廣播和多播僅應用於UDP;TCP是一個連線導向的協議,它意味著分別運行於兩主機(由IP地址確定)內的兩進程(由連接埠號碼確定)間存在一條串連.3.網路中的一條報文是如何傳送到主機中的某一個進程的1>主機網卡僅接收那些目的地址為網卡物理地址或廣播位址的報文。(目前大多數的網卡經過配置都能接收目的地址為多播地址或某些子網多播地址的報文)。2>網卡接收到報文後交付給IP層,IP層通過判斷目的IP是否是本地IP
Time of Update: 2018-12-03
枚舉常量是枚舉類型中的值,即枚舉值。枚舉類型是一種使用者定義的類型,只有使用者在程式中定義它後才能被使用。使用者通常利用枚舉類型定義程式中需要使用的一組相關的符號常量。枚舉類型的定義格式為: enum <枚舉類型名>
Time of Update: 2018-12-03
---------------------------------------------------------轉載Author : pennyWebSite : http://blog.csdn.net/pennyliang---------------------------------------------------------for(;;) { void* buffer = malloc(SIZE); memset(buffer,SIZE);
Time of Update: 2018-12-03
strcasecmp1.功能:忽略大小寫比較字串2.標頭檔《string.h》3. 函數說明 strcasecmp()用來比較參數s1和s2字串,比較時會自動忽略大小寫差異4. 傳回值 :若參數s1和s2字串相同則返回0。s1長度大於s2長度則返回大於0 的值,s1 長度若小於s2 長度則返回小於0的值5.例子: #include <string.h> main() { char *a="aBcDeF"; char *b="AbCdEf"; if(!strcasecmp(
Time of Update: 2018-12-03
Sleep函數1.簡介函數名: sleep功 能: 執行掛起一段時間用 法: unsigned sleep(unsigned seconds);在VC中使用帶上標頭檔#include <windows.h>在gcc編譯器中,使用的標頭檔因gcc版本的不同而不同#include <unistd.h>2.注意在VC中Sleep中的第一個英文字元為大寫的"S"在標準C中是sleep, 不要大寫.. 下面使用大寫的來說明,, 具體用什麼看你用什麼編譯器.
Time of Update: 2018-12-03
字串小知識點(持續更新)1.sizeof()和strlen()計算字串的長度的區別1>sizeof()計算的字串占空間的大小;sizeof常用來計算自訂結構體的大小2>strlen()計算的字串的實際長度,但不包括最後字串結束標誌’\0’。例如:char a[20]={“hello”};sizeof(a)=20;strlen(a)=5;2.char s[]={“123””123”}等就等價於char
Time of Update: 2018-12-03
sscanf名稱:sscanf() - 從一個字串中讀進與指定格式相符的資料.函數原型:int sscanf( const char *, const char *, ...);標頭檔:#include<stdio.h>說明:sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤(stdin)為輸入源,前者以固定字串為輸入源。例子:1. 常見用法。 char buf[512] ; sscanf("123456 ", "%s",
Time of Update: 2018-12-03
單鏈表的操作 為了準備筆試,寫了幾個單鏈表的操作,包括建鏈,刪鏈,插入節點,刪除節點和鏈表倒序。struct node {int data;struct node *next;};struct node *create_list(){struct node *p, *q, *h;int i;p = h = (struct node *)malloc(sizeof(struct node));h->data = 6;for (i = 0; i < 5; i++) {q =
Time of Update: 2018-12-03
轉載:http://software.intel.com/zh-cn/blogs/2011/09/22/400007583/1.引言:Linux系統下的多線程遵循POSIX線程介面,稱為pthread。編寫Linux下的多線程程式,需要使用標頭檔pthread.h,串連時需要使用庫libpthread.a。順便說一下,Linux下pthread的實現是通過系統調用clone()來實現的。clone()是Linux所特有的系統調用,它的使用方式類似fork,關於clone()的詳細情況,有興趣的讀
Time of Update: 2018-12-03
堆疊溢位技術從入門到高深(一)轉載:作者:獨自等待出處:IT專家網2007-12-18
Time of Update: 2018-12-03
其實網路上已經有很多關於這方面的知識了,這篇文章的目的也只在於加深印象,積累經驗,有人告訴我,寫文章對自己也是一種很好的協助。希望這篇文章對其它人也有一點協助,由於文筆水平不好,表述不清楚之與錯誤之處,還請見詳。關於FreeType2L的介紹我不多說了,網上的文章還是比較多的。還有,本文只介紹我的安裝經曆,不對FreeType2庫的使用做介紹,如有需要,大家自己看參考手冊。
Time of Update: 2018-12-03
很多人想做基於live555的webcam即時視頻傳輸.在linux下操作webcam有V4L架構.在windows下有兩種選擇:vfw和directshow.但directshow的架構很獨立,你如果想用它,就得做一個能打包rtp發送的render filter,想利用live555架構不是不可以,但是麻煩.所以vfw是最好的選擇.本文分析ffmpeg的vfwcap的實現,同時也協助瞭解ffmpeg的架構和inputdevice的寫法.要實現一個input
Time of Update: 2018-12-03
Linux下靜態庫產生和使用一.靜態庫概念1.庫是先行編譯的目標檔案(object files)的集合,它們可以被連結進程式。靜態庫以尾碼為”.a”的特殊的存檔(archive
Time of Update: 2018-12-03
一.scanf家族1.scanf家族的原型如下。每個原型中的省略符號表示一個可變長度的指標列表。從輸入轉換而來的值逐個儲存到這些指標參數所指向的記憶體位置。int fscanf(FILE *stream,char const *format,…);int scanf(char const *format,…);int sscanf(char const
Time of Update: 2018-12-03
write and submit your first linux kernel patch1. 建立自己的branch Git branch test 2. 切換到branch Git checkout test 3. 檢查編碼的風格cjok@ubuntu:~/git-work/linux$./scripts/checkpatch.pl --file --terse drivers/staging/media/go700
Time of Update: 2018-12-03
運行時資料結構[段]文本段也稱為程式碼片段;資料區段包含經過初始化的全域和靜態變數以及它們的值;BSS(block started by symbol)段包含未初始化的全域變數和靜態變數;堆棧段(stack)包含局部變數、臨時資料、傳遞到函數中的參數等,運行時產生;堆(heap)用於動態分配的記憶體(malloc),平常所看到的段錯誤和記憶體泄露就是發生在堆裡的; [可執行檔的三個段]cjok@ubuntu:~/learn/c$ size a.out text data
Time of Update: 2018-12-03
SRSStore Return State onto a stack.SyntaxSRS{addr_mode}{cond} sp{!}, #modenumSRS{addr_mode}{cond} #modenum{!} ; This is a pre-UAL syntaxwhere:addr_modeis any one of the following:IAIncrement address After each transferIBIncrement address
Time of Update: 2018-12-03
一.前言1.行I/O可以用兩種方式執行—未格式化的或格式化的。這兩種形式都用於操作字串。2.未格式化的I/O:簡單讀取或寫入字串,而格式化的I/O則執行數字和其他變數的內部和外部表格示形式之間的轉換。二.未格式化I/O1.未格式化I/O函式宣告1>char *fgets(char *buffer,int buffer_size,FILE *stream);2>char *gets(char *buffer);3>int fputs(char const
Time of Update: 2018-12-03
阻塞型字元裝置驅動[概述]首先明確一點,不管你是睡眠、休眠還是阻塞,還是掛起,本質上都是把進程放到等待隊列上。 [休眠的實現]休眠通過等待隊列進行處理。等待隊列是由等待某些事件發生的進程組成的簡單鏈表。核心中用wake_queue_head_t來代表等待隊列。等待隊列可以通過DECLARE_WAITQUEUE()靜態建立,也可以由Init_waitqueue_head()動態建立。進程把自己放入等待隊列中並設定成不可執行狀態。當與等待隊列相關的事件發生的時候,隊列上的進程會被喚醒。為了避免產生競
Time of Update: 2018-12-03
核心中常見的符號[THIS_MODULE]模組是一種可以在核心運行過程中動態載入、卸載的核心功能組件。2.6核心中模組在被使用時,是不允許被卸載的。編程是需要用”使用計數”來描述模組是否在被使用。THIS_MODULE就充當了這個功能。 [likely&