原创 IDE使用

建 SylixOS Base 工程 (第一次創建耗時很長) Toolchain選x86-sylixostoolchain CPU Type 選pentium 對應的虛擬機架構類型選x86。 cpu類型選qume64可以運行,其

原创 ipv4首部分析

ipv4首部分析: 首部長度:對於沒有可選項的IP包,首部長度則設置爲“5”(以4B爲單位)。即 20字節 區別服務:表明服務質量。(優先度,延遲,吞吐,可靠性,代價,安全) 總長度: IP首部與數據部分合起來的字節數。該字段長

原创 c語言複雜指針表達式分析

函數指針—指向函數的指針: #include <stdio.h> int fun1(int a) { printf("%d\n",a); return 8; } int main() { //函數指針(指向

原创 c++ 多態(靜態多態,動態多態)與 重定義

c++重載,重寫,重定義 重載(靜態多態) 同一個作用域下同一方法名 入參不同 執行不同的方法 本質:入參不同,在編譯時會在方法名前加不同的修飾符; 所以相當於方法名不同。 重寫(子類覆蓋父類) 函數名相同,函數形參也相同。調

原创 malloc過大,缺頁中斷

內存分配原理: 當一個進程發生缺頁中斷的時候,進程會陷入內核態,執行以下操作: 1、檢查要訪問的虛擬地址是否合法 2、查找/分配一個物理頁 3、填充物理頁內容(讀取磁盤,或者直接置0,或者啥也不幹) 4、建立映射關係(虛擬地址到物

原创 源碼編譯openssh

編譯openssl: ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib-dynamic enable-camellia

原创 max,min越界問題

//給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。 //輸入: 120 //輸出: 21 //輸入: -123 //輸出: -321 int reverse(int x) { i

原创 qt無.ui界面-------小例子

pro配置文件: QT += core gui QT += printsupport greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c

原创 Mat中數據的類型判斷

Mat中數據的類型判斷 C++版本的Mat類型,在創建和使用過程中,經常會遇到CV_8UC1、CV_8UC3、CV_32FC3等聲明。 Mat::depth()函數求矩陣中元素的一個通道的數據類型,這個值和type是相關的。 例如

原创 tcp連接時三次握手與四次揮手 SYN+ACK FIN+ACK

三次握手 SYN--> //請求同步信號 (server端收到後 確認client能發) <--ACK ,SYN //確認接收信號,+ 請求同步信號 (client端收到後 確認自己能收能發,service能收能發

原创 tcp首部 與 tcp報文傳輸的機制

tcp頭分析 偏移:頭部長度(包含選項和填充) 保留區:6個0 URG-緊急指針有效 ACK-確認序號有效 PSH-接收方應儘快將這個報文交給應用層 RST-連接重置 SYN-同步序號用來發起一個連接 FIN-終止一個連接 窗口

原创 二叉樹(創建與遍歷)

遞歸建二叉樹時遇到的問題: #include <iostream> #include <vector> using namespace std; typedef struct treenode{ int val;

原创 c語言基礎——輸入輸出及string操作

輸出printf與put #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <ctype.h> #inc

原创 簡單make編寫

main.c #include <stdio.h> extern int main1(); extern int main2(); int main() { main1(); main2(); } main1.c #incl

原创 鏈表

vector轉鏈表,反轉鏈表 #include <iostream> #include <vector> #include <stack> #include <queue> using namespace std; typede