原创 getrlimit和setrlimit 兩個函數詳解

功能描述: 獲取或設定資源使用限制。每種資源都有相關的軟硬限制,軟限制是內核強加給相應資源的限制值,硬限制是軟限制的最大值。非授權調用進程只可以將其軟限制指定爲0~硬限制範圍中的某個值,同時能不可逆轉地降低其硬限制。授權進程可以任意改變其

原创 線性地址、邏輯地址、虛擬地址、物理地址

邏輯地址(Logical Address) 是指由bai程式產生的和段相du關的偏移地址部分。例如zhi,你在進行C語言指針編dao程中,能讀取指針變量本身值(&操作),實際上這個值就是邏輯地址,他是相對於你當前進程數據段的地址,不和絕對

原创 gdb 中 watch

1.  watch 變量的類型     a. 整形變量: int i; watch i;     b. 指針類型:  char *p; watch p, watch *p;     它們是有區別的.       watch p 是查看 *

原创 Quagga協議守護配置命令

ospf: configure termial ‘進入到配置模式下 router OSPF 1 表示在這臺路由器上運行一個OSPF的進程,進程標號爲1.這個標號只在這個路由器內部有效! 路由器是一臺專用的網絡計算機,它也有CPU,內存,硬

原创 Linux 內核網絡協議棧 ------sk_buff 結構體 以及 完全解釋

鏈接:https://blog.csdn.net/shanshanpt/article/details/21024465 在2.6.24之後這個結構體有了較大的變化,此處先說一說2.6.16版本的sk_buff,以及解釋一些問題。 一、

原创 變參詳解

  可變參數函數又稱參數個數可變函數(本文也簡稱變參函數),即函數參數數目可變。原型聲明格式爲: type VarArgFunc(type FixedArg1, type FixedArg2, …);      其中,參數可分爲兩部分

原创 Quagga簡介、安裝、配置說明

    Quagga軟件原名是Zebra是由一個日本開發團隊編寫的一個以GNU版權方式發佈的軟件。可以使用Quagga將linux機器打造成一臺功能完備的路由器。 模塊化設計:Quagga基於模塊化方案的設計,即對每一個路由協議使用單獨的

原创 Gateway 爲 0.0.0.0

後三條是自動生成的,因爲是直連的網段,不需要走三層,直接走二層協議,在每塊網卡上每配置一個IP就會生成一條記錄(一個網卡上可以配置多個IP)。表示去往這兩個網段的數據包,直接由網卡接口ens33及ens37發送出去 這兩條記錄中的gat

原创 undefined reference to symbol xxxxx和undefined symbol:xxxx錯誤的原因分析以及解決方法

Linux下編譯程序時,經常會遇到“undefined reference to XXX” 報錯,或者運行時出現undefined symbol:xxxx報錯。 這裏總結一些可能的原因和解決方案,給需要的朋友: 說到這兩個錯誤,必須先提一

原创 C語言在一個文件裏調用另一個源文件中的函數

問題 如題:C怎麼在一個文件裏調用另一個源文件中的函數 解決辦法 程序大了之後,主函數看起來會十分繁雜,因此開始考慮模塊化開發,C程序模塊化開發只要寫三種文件,1.func.h 2.func.c 3.main.c,作用分別如下: func

原创 利用libpcap將pcap包改成mpls包

#include<stdio.h> #include<string.h> #include <stdlib.h> #include<stdio.h> #include<math.h> #include<string.h> #include

原创 結構體內存分佈以及指向下一內存

想指向結構體下一塊內存,當結構體剛好滿足4字節對齊,用 struct match {     int a;     char b[3];     unsigned char data;  } node;  剛好滿足4字節對齊 用node-

原创 樹莓派4b安裝wringPi

  當使用樹莓派時輸入gpio readall命令查看引腳狀態時,系統提示:   出現這個問題的原因在於,系統當前的wiringpi版本不支持樹莓派4B,但是這個問題不會影響我們編程使用樹莓派的所有引腳的功能。 解決這個問題的步驟: 進入

原创 inet_ntop()、inet_pton()、inet_addr()、inet_ntoa()函數之間的關係

- emmmmm,先看這張圖來理解,知道這些函數的作用 1. inet_pton()源碼 int inet_pton(int family, const char *strptr, void *addrptr) {     if (fa

原创 realloc用法

realloc函數並不初始化內存,如果要初始化內存裏面的內容,可以用memset函數 realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法