原创 內存編址

內存中的每一個字節有一個地址編號(address)。(按字節編址) 對於int,char,double,int [3]這樣的數據類型,都是從底層逐層抽象來獲取變量的值;對於int,從首地址開始連續獲取4個字節的二進制串,然後根據所定

原创 變量內存空間釋放

堆棧內存釋放:   棧的內存是由編譯器自動分配、釋放,出了作用域就釋放。   堆的內存由程序員分配、釋放,他的作用域是整個程序,如果程序沒有釋放,程序結束時會自動釋放。

原创 存儲模型

程序對內存的使用(分區) 棧區(stack):編譯器自動分配和釋放,相比堆而言較快。存放關於函數的數據,局部變量的值(其實也算函數內的數據)。棧的空間是連續的內存空間。在windows下向低地址擴展。棧是函數調用的基礎。操作方式類似

原创 文本模式與二進制模式

文件的定義:文件是在磁盤上一段已命名的存儲區。 C語言是Unix的產物,因此C對文件的處理與Unix環境適配。 C把文件看作是一系列連續的字節,每個字節都能被單獨讀取。 但由於其他環境可能無法完全對應此模型,C提供兩種模型:文本模

原创 標準文件

三個標準文件:標準輸入(standard input)、標準輸出(standard output)、標準錯誤輸出(standard error output)。在默認情況下,標準輸入是鍵盤;標準輸出和標準錯誤輸出是顯示屏。 C程序運行

原创 函數指針(function pointer)

指針,指的是地址。對於函數指針,首先了解函數的地址。 函數的地址 函數具有物理內存地址;函數的地址是函數的進入點,是調用函數的地址。 函數的函數名就是指針(類似數組),函數的調用可以通過函數名,也可以通過指向函數的指針進行使用。 函數

原创 段(segment)

在GDB調試中,經常會出現SIGSEGV(段錯誤),首先來了解一下什麼是段。 對於C文件,編譯後形成的二進制文件包括的內容與操作系統有關。Unix/Linux用的是ELF格式,DOS下是COFF格式,這些格式不盡相同,但是都有一個共同的

原创 TCP/IP四層模型

實際上,網絡模型運用的不是OSI模型,而是TCP/IP模型。 其對應關係如下: 網絡接口層:(數據傳遞)負責監視數據在主機和網絡之間的交換。地址解析協議(APR)工作在此層。 地址解析協議:將IP地址翻譯成爲物理地址碼。

原创 ISO/OSI七層模型

ISO:國際標準化組織 OSI:開放系統互聯模型(Open System Interconnect) TCP/IP四層模型是在ISO/OSI七層模型(基礎)上演化而來,我們運用的是TCP/IP四層模型。 ISO/OSI七層模型

原创 IP地址與子網掩碼

信息在傳輸的過程中,在網際互連層中爲信息封裝了IP包頭。 IP包頭 - 一般的IP包頭固定爲20bytes,一行32bit,共5行;但是有可能包含一些選項,所以包頭也不一定是20bytes,這就是IPv4不如IPv6快的一個主

原创 Bash的基本功能

命令的別名:等效於原命令。 alias:查看系統中所有命令的別名。 alias還可以設定系統中命令的別名。格式如下 alias ls='ls --color=never' //表示ls顯示的文件全是白色,根據這種格式進行修改。 ali

原创 Shell概述

Shell是什麼?Shell(殼) Shell是一個命令行解釋器,它爲用戶提供了一個向Linux內核發送請求以便運行程序的界面級系統級程序。(接口)(翻譯官) Shell是一個功能強大的編程語言。(解釋執行的腳本語言) Shell

原创 腳本執行

echo輸出命令:將指定內容輸出至屏幕上。 echo [選項] [內容] 選項:(更多詳情自行查詢) -e:支持反斜線控制的字符轉換(類似printf) Shell腳本能夠直接調用Linux的Shell命令。(這是做系統管理

原创 掛載命令

Linux的掛載:所有存儲設備必須經過掛載,才能夠正常使用。掛載將設備掛接在一個已存在目錄上,我們通過目錄訪問設備。 在Windows中,相當於給磁盤分區,分配盤符。 命令:mount bluephantom@bluephantom

原创 查看用戶登錄命令

查看登錄信息(詳細) 查看登錄信息(簡略) 查看當前登錄和過去登錄的用戶信息:(可以查看是否有人偷偷地利用了你的機器) /var/log/wtmp該文件是二進制文件,無法由vim正常啓動,只能由last顯示內容。 查看所有用戶