原创 【Linux】進程間通訊方式

管道 有名管道:在磁盤上有一個文件標識,創建管道文件,但是交互的數據並不會存儲到磁盤中,管道文件不會佔據磁盤空間。有名管道沒有在磁盤上存真正的信息,而是在內存中存放,2個進程結束後自動丟失,通信結束後有名管道的文件路徑本身存在

原创 【C語言】數組越界

數組越界在編程中是很難找出的,下面來看一下數組越界的問題: 示例代碼如下: #include <stdio.h> int main() { int arr[11]; arr[10] = i; for (i; i <= 1

原创 【C++】設計模式之觀察者模式

觀察者模式 觀察者模式:對象間一種一對多的依賴關係,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並處理這種狀態的改變。又被稱爲視圖(Model)-視圖(View)模式或者從屬者模式 觀察者模式(MVC模式) MVC

原创 【C++】設計模式之單例模式

單例模式 單例模式的定義: 說起單例模式,根據字面意思理解,就是隻生成一個對象!並提供一個公有的接口,供其他對象共享!這也是單例模式的主要思想! 單例模式的種類: 普通的懶漢模式(線程不安全) 安全的懶漢模式(線程安全,雙

原创 靜態庫和動態庫的區別

靜態庫在編譯的時候會被直接拷貝一份到目標程序裏,這段代碼在目標程序裏就不會再改變了。動態庫在編譯時並不會被拷貝到目標程序中,目標程序中只會存儲指向動態庫的引用。等到程序運行時,動態庫纔會被真正加載進來。且同一份庫可以被多個程序

原创 【C++】智能指針

1、智能指針的設計思想 我們一般通過在棧上創建一塊內存管理堆上開闢的內存,根據堆棧的特點,我們可以知道,棧上的內存一般是由系統負責回收的!而堆上的內存則需要我們自己進行釋放,忘記釋放就會早成內存泄漏,因此,智能指針的設計思想就是

原创 OSI七層模型

七層 作用 協議 應用層 文件傳輸、電子郵件、文件服務 DNS/FTP/SMTP/SNMP 表示層 數據格式化,代碼轉化、數據加密 無協議 會畫層 解除或建立別的接點的聯繫 無協議 傳輸層 提供端到端的接

原创 進程和線程的區別

1.進程是運行中的程序,線程是進程內部的一條執行序列。 2.進程是資源分配的最小單元,線程是執行的單元,CPU調度的最小單元。 3.進程是一個獨立的實體、線程是進程內部的執行序列。 4.進程切換效率低,代價大;線程切換效率高,代價

原创 Linux之系統調用過程及意義

系統調用 Linux內核中設置了一組用於實現各種系統功能的接口,稱爲系統調用。爲了方便使用操作系統,操作系統預留出了一些接口,這些接口就是系統調用函數。用戶可以通過系統調用命令在自己的應用程序中調用它們。從某種角度來看,系統調用

原创 編譯鏈接原理及4G虛擬地址空間內存佈局

如圖所示: 1. 預編譯(生成.i文件)* 命令:gcc -E hello.c -o hello.o 將所有的“#define”刪除,並且展開所有的宏定義(文本替換); 處理所有條件預編譯指令,如:“#if”、

原创 硬中斷和軟中斷的區別

中斷 中斷本質上是-一種特殊的電信號,由硬件設備發向處理器。從物理學的角度看,中斷是一種電信號,由硬件設備生成,並直接送入中斷控制器的輸入引腳中一中斷控制器是個簡單的電子芯片,其作用是將多路中斷管線,採用複用技術只通過一個和處理

原创 MySQL之基本語句

DDL: 庫 創建庫:create database dataname; eg. create database 軟工1601班; 刪除庫:drop database databasena

原创 算法之插入排序

相信大家都玩過撲克牌吧!沒玩過的同學得去學習一下哦!因爲插入排序就是模擬了插撲克牌的過程哦! 插入排序分爲三部: 第一步:找數據 第二步:比較大小 第三步:移動數據 思維導圖如下: 代碼如下: void InsertQo

原创 TCP和UDP的區別

1.TCP面向連接的,UDP是無連接的。 2.TCP提供可靠的流式服務,UDP提供不可靠的數據報服務。 3.TCP對系統資源的要求比較多,UDP比較少。 4.UDP的程序結構比TCP要簡單。 5.TCP保證數據正確性,UDP可能丟