原创 APUE之線程創建與終止

 1. 線程ID(pthread_t)     類似於進程ID的定義,線程ID用於在所在進程中唯一標識一個線程,雖然在linux中使用無符號長整型表示pthread_t,但不建議在實際操作中直接當作整數處理     /* API  :

原创 i386和arm32架構下函數棧幀分析

棧幀的實現實際跟系統本身的架構密切相關,這裏主要對i386和arm32兩種架構下的棧幀展開分析。 下面關於棧幀的分析都將基於這個例子進行: int func(int a,int b) { int sum; sum = a

原创 libpcap源碼分析_PACKET_MMAP機制

使用PACKET_MMAP機制的原因:         不開啓PACKET_MMAP時的捕獲過程是非常低效的,它使用非常受限的緩衝區,並且每捕獲一個報文就需要一次系統調用,         如果還想獲取這個報文的時間戳,就需要再執行一次系

原创 libpcap源碼分析_從pcap_open_live說起

libpcap是跨平臺網絡數據包捕獲函數庫,本文將基於Linux平臺對其源碼以及核心原理進行深入分析備註: 以下分析都基於libpcap-1.8.1版本進行              以下分析按照庫的核心API爲線索展開         

原创 unix環境高級編程(中文第三版)堪誤

[1]. 106頁,myftw函數中,位於起始部位,錯誤語句“malloc PATH_MAX + 1 bytes ({Flgure 2.16})”,正確的應該是“malloc PATH_MAX + 1 bytes ({Figure 2.1

原创 GNU make手冊翻譯系列(5)

4.6 沒有配方或依賴的規則         如果一條規則沒有配方或依賴,並且規則的目標不是一個存在的文件名,則執行此規則時,make就認爲它的目標已經被更新過.這樣的目標在作爲一個規則的依賴時,因爲依賴總被認爲被更新過,因此作爲依賴所在

原创 APUE之I/O多路複用

I/O多路複用有3種具體實現模型:select、poll和epoll /* int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *ex

原创 APUE之記錄鎖

記錄鎖提供的功能:         當第一個進程正在訪問文件的某個部分時,使用記錄鎖可以限制其他進程訪問同一文件區的行爲        這裏需要注意一點,記錄鎖支持鎖定文件的一個區域(當然也可以是整個文件)

原创 GNU make手冊翻譯系列(3)

4.3 文件名使用通配符        單個文件名中可以使用通配符來指定許多文件.Makefile中的通配符和Bourneshell一樣,包括"*","?","[...]".例如,"*.c"代表了當前工作目錄下所有的以".c"結尾的文件.

原创 802.1x認證詳細剖析

1.概述 802.1X起源於無線網絡標準802.11協議,802.11協議是標準的無線局域網協議,802.1X協議設計的最初的目的是爲了解決無線局域網用戶的接入認證問題,但由於其原理對於所有符合IEEE802標準的局域網具有普適性,因此在

原创 GNU make手冊翻譯系列(2)

4.2 依賴類型         實際上有兩種不同類型的依賴可以被GNUmake程序理解:一種是之前章節中描述的常規依賴;另一種是"order-only"依賴.常規依賴主要陳述了兩件事:首先,由於目標的配方在執行之前必須確保該目標的所有常

原创 nDPI快速上手指南

nDPI快速上手指南 這是一篇針對nDPI官方文檔nDPI- Quick Start Guide的翻譯,由於文檔太老了(13年),所以部分接口已經發生了變化,本人將基於Version2.0對這些過時的接口進行更新。由於水平有限,翻譯的、

原创 GNU make手冊翻譯系列(1)

前言本系列翻譯參考網上廣傳的<<GNU make中文手冊>>,之所以要再次翻譯一遍原因有二:        原有翻譯基於V3.8版本的GNU make,跟手頭版本V4.2已經存在不少差異;        通過翻譯深入理解GNU make另

原创 GNU make手冊翻譯系列(4)

4.5 僞目標      有這麼一種目標,它不代表一個真正的文件名,執行make時可以指定這個目標來執行其所在規則定義的一系列配方,這種目標就叫僞目標.使用僞目標有兩個原因:一個是避免跟同名文件出現衝突,另一個是提高執行make 時的效率

原创 APUE之mmap機制

mmap(memery-mapped I/O)可以將一個文件或其他對象(比如一段匿名內存)映射到進程的虛擬地址空間。 mmap技術的用途主要有以下兩個方面:     [1]. 將一個文件映射到進程的虛擬地址空間後,進程就可以直接訪問這段虛