原创 C++中assert宏(2-2)

3 關閉assert() 是否定義了預處理器變量NDEBUG,控制了assert宏的開關。默認情況下,沒有定義預處理器變量NDEBUG,此時assert宏的處於開啓狀態,即該宏起作用,當定義了NDEBUG後,assert宏的處於關閉狀態,

原创 C++中assert宏(2-1)

assert是一種預處理宏,由預處理器管理。因此,assert宏並不是定義在命名空間std中的。 1 預處理 在C++程序源代碼被編譯之前,由預處理器對C++程序源代碼進行的處理。這個過程並不對程序的源代碼進行解析,而是源代碼分割或處理成

原创 C++中string與字符數組的互相轉化

string是C++標準庫類型,用於表示可變長的字符序列。 1 字符數組轉化爲string 1.1直接複製或者賦值 通過直接複製或者賦值的方式,可以將字符數組轉換爲string。 char ach1[] = "Hello"; strin

原创 C++中auto、decltype與數組

auto與decltype都是C++11中新引入的類型說明符。 1 auto的用法 使用類型說明符auto,實際上就是讓編譯器來分析表達式所屬類型,所以auto定義的變量必須有初始值。 auto i = 1; 此時編譯器會推斷變量i的類

原创 Kali Linux中Fierce的用法

Fierce顯示指定域的DNS信息,是一個偵察工具,不能用於IP掃描或者DDos。Fierce可以使用幾種不同的策略來快速掃描指定的域。通過掃描指定的域,可以獲取子域的IP地址,而這些IP地址信息正是使用NMap等掃描工具所需要的。 1

原创 C++中printf()函數的用法2

在《C++中printf()函數的用法1》中提到printf()函數的格式中的format,可以是普通的字符串、轉義序列或者是格式標準,並且介紹了當format是普通的字符串、轉義序列時的用法。 int printf( const ch

原创 C++中printf()函數的用法10-8

printf()的參數格式如下所示 %[flags][width][.precision][size]type 其中,width域是可選擇的,跟在flags域之後。width域的值是一個非負的十進制整數,表示輸出字符的數量。 1 指定字符

原创 netcat中無參數時的處理(2-1)

在使用netcat時,如果未輸入參數,則此時會彈出“Cmd line”的提示,要求繼續輸入參數,如圖1所示。   圖1 Cmd line提示 在netcat源代碼中,會獲取用戶在“Cmd line”中的輸入,將參數提取出來。該段代碼在m

原创 Windows10與Kali Linux之間通過XFTP來共享文件

1 Xftp 1.1 Xftp簡介 Xftp是一個基於 MS windows 平臺的功能強大的SFTP、FTP 文件傳輸軟件。使用了 Xftp 以後,MS windows 用戶能安全地在 UNIX/Linux 和 Windows PC 之

原创 C++中爲類重載下標操作符(2-2)

2.2 常量對象 當定義myClass類的常量對象時 const myClass c_my_class(5); “2.1 返回值是引用類型”中提到的重載下標操作符[]的返回值是引用類型,因此當有如下代碼時不報錯。 int i = c_

原创 C++中printf()函數的用法10-6

1 以內存地址的格式輸出 printf()的type是%p的時候,表示以十六進制的方式顯示指定的變量,特別是用在顯示內存地址的時候。 int a = 1; printf("%p", &a); 以上代碼的作用是顯示變量a的內存地址,其輸

原创 C++中動態分配多維數組

在C++中,定義數組時,數組的維數必須是常量表達式,定義多維數組也是這個要求。如果需要定義一個由用戶輸入維度的多維數組時,就必須使用動態分配內存的方式進行定義。 1 二維數組 以二維數組爲例,在《C++二維數組》中提到,二維數組的元素又是

原创 getservbyname()函數與getservbyport()函數

getservbyname()函數與getserbyport()函數都是用來獲取服務的信息。該信息用servent結構表示。 1 servent結構 servent結構的定義爲 typedef struct servent { cha

原创 C++中printf()函數的用法3

將argument以整型的方式打印到輸出流時,可以有以下幾種方式:有符號十進制、無符號十進制、無符號八進制和無符號十六進制。 1有符號十進制 可以將type設置爲i或者d來將整型以有符號十進制的方式打印到輸入流中。 int a = -1

原创 PEView查看DLL延遲加載信息

1 DLL延遲加載技術 在Windows中加載程序時,需要把該程序的代碼和所需的DLL複製到內存空間中。如果所需的DLL不存在,則程序將會報錯。如果程序所需的DLL比較多,則程序啓動會消耗較多時間。可以採用DLL延遲加載技術減少程序啓動時