原创 GCC編譯基礎

資料準備: ❝ 爲了方便演示和講解,在這裏提前準備好幾個簡單的文件:test.cpp test.h main.cpp 文件內容如下:❞ main.cpp #include "test.h" int main (int argc, ch

原创 內存分佈及程序運行中的BSS段、數據段、代碼段、堆和棧

棧(stack):又稱堆棧,棧是由編譯器自動分配釋放,存放函數的參數值,局部變量的值等(但不包括static聲明的變量,static意味着在數據段中存放變量)。除此之外,在函數被調用時,棧用來傳遞參數和返回值。由於棧的先進後出的特點,所以

原创 Linux可執行文件的格式ELF

在Linux中,可執行文件的格式是ELF格式,而有一些命令可以幫助我們瞭解它們更多的“祕密”,以此來幫助我們解決問題。 示例程序 我們的示例程序如下: //hello.c #include<stdio.h> int main(int a

原创 IO多路複用-- Select、Poll、Epoll

IO多路複用的概念 多路複用是一種機制,可以用來監聽多種描述符,如果其中任意一個描述符處於就緒的狀態,就會返回消息給對應的進程通知其採取下一步的操作。 IO多路複用的優勢 當進程需要等待多個描述符的時候,通常情況下進程會開啓多個線程,每個

原创 棧回溯

首先必須明確一點也是非常重要的一點,棧是向下生長的,所謂向下生長是指從內存高地址->低地址的路徑延伸,那麼就很明顯了,棧有棧底和棧頂,那麼棧頂的地址要比棧底低。對x86體系的CPU而言,其中: ---> 寄存器ebp(base point

原创 pthread_joinhe和pthread_detach

首先看一下兩個函數的定義: int pthread_join(pthread_t tid, void **status); 參數tid 是希望等待的線程的線程號,status 是指向線程返回值的指針,線程的返回值就是pthread_ex

原创 Python中import的as

在Python中,如果import的語句比較長,導致後續引用不方便,可以使用as語法,比如: import dir1.dir2.mod # 那麼,後續對mod的引用,都必須是dir1.dir2.mod dir1.dir2.mod.X

原创 大話殭屍進程

前天跟一位“大神”級別的人物交流了一番,意識到什麼是真正的“高”手,廢話不多說,就其中的某一個問題且結合自己的經驗總結一番,希望能給到屏幕前的你一些啓示(以下是個人理解): 一體機進程有核間通信進程(DPAA)應用層業務,底軟側負責完成關

原创 Python import module與from module import * 兩種模塊的區別

區別1 import module 引用共享變量時,要使用module.變量名。 而from module import * 直接使用變量名即可。 區別2 import module方式操作module的變量時,本地不會創建新變量,操作的

原创 Python IDE註釋

#!/usr/bin/env python # -*- coding:utf-8 -*- # Author:[email protected] 1. #!/usr/bin/env python 與 #!/usr/bin/python 的區

原创 WireShark之Lua插件

在ICT(ICT,information and communications technology)人員用於網絡分析的兵器庫中,wireshark無疑是倚天劍,雖歷史悠久,其鋒利程度絲毫不減,由於開源,便於用戶二次開發,這就使得此劍的顏

原创 C/C++中的預處理

本文主要講述C/C++中預處理命令相關的內容。主要參考資料在後面給出。 我們可以在C源程序中插入傳給編譯程序的各種指令(宏),這些指令被稱爲預處理器指令,它們擴充了程序設計的環境。 在將一個C源程序轉換爲可執行程序的過程中, 編譯預處理是

原创 C/C++柔型數組

1、什麼是柔性數組?柔性數組既數組大小待定的數組, C語言中結構體的最後一個元素可以是大小未知的數組,也就是所謂的0長度,所以我們可以用結構體來創建柔性數組。 2、柔性數組有什麼用途 ?它的主要用途是爲了滿足需要變長度的結構體,爲了解決使

原创 C++函數的默認參數及函數重載

在C++中,定義函數時可以給形參指定一個默認的值,這樣調用函數時如果沒有給這個形參賦值(沒有對應的實參),那麼就使用這個默認的值。也就是說,調用函數時可以省略有默認值的參數。如果用戶指定了參數的值,那麼就使用用戶指定的值,否則使用參數的默

原创 C++的關鍵字public,private和protected

先寫最基礎的吧。C進入C++最先碰到的就是class,跟structure很像,但是一開始就多了幾個關鍵字public,private和protected。下面就我目前自己的理解來說一說。 這幾個關鍵都是修飾class內部成員的訪問權限,