原创 Linux基礎篇 進程通信——管道

IPC(InterProcess Communication)進程間通信 每個進程各⾃自有不同的⽤用戶地址空間,任何⼀一個進程的全局變量在另⼀一個進程中都看不到所以進 程之間要交換數據必須通過內核,在內核中開闢⼀

原创 c/c++中關鍵字

有空更新…… 1.static 1.1作用 (1)用於定義全局變量時,此時變量保存在靜態區,變量只能在本源文件中使用,不能被其他源文件使用。生命週期爲自定義開始直到程序結束時銷燬。 (2)用於定義局部變量時,變量保存在靜態區,在函數返回後

原创 Linux基礎篇——信號

Linux下的信號列表 列表中,編號爲1 ~ 31的信號爲傳統UNIX支持的信號,是不可靠信號(非實時的),編號爲32 ~ 63的信號是後來擴充的,稱做可靠信號(實時信號)。不可靠信號和可靠信號的區別在於前者不支持排隊,可能

原创 Linux基礎篇——信號(2)

捕捉信號 概念:如果信號的處理動作是用戶自定義函數,在信號遞達時就調用這個函數,這稱爲捕捉信號。 處理過程舉例如下: 1. ⽤用戶程序註冊了SIGQUIT信號的處理函數sighandler。 2. 當前正在執行main函數

原创 Linux-7基礎篇 關於進程的一些事

通過幾個程序瞭解下進程創建及運行過程中所涉及的知識點和我對進程的一些理解。 #include<stdio.h> 2 #include<unistd.h> 3 4 int main() 5 { 6

原创 Linux的下的文件查找命令find

Linux下有幾種查找文件命令:Which 查看可執行文件的位置。whereis 查看文件的位置。locate 配合數據庫查看文件位置。find 實際搜尋硬盤查詢文件名稱。每種命令都有他特定的功能,which命令的作用是,在PATH變量指

原创 c++中的動態內存管理

c++中的動態內存管理問題    c++中使用new和delete實現動態內存管理。new和delete實現動態管理對象,new[]和delete[]實現動態管理對象數組。c++中的new和delete運算符均使用我們c中學過的mallo

原创 Linux配置vim ctags g++ IDE GDB

第一講:vim的配置在安裝完Centos後,它默認的是安裝了VI編輯器,VIM是沒有安裝的,所以我們在使用vim test.txt時會提示: vim command not found 。。。 這就是說明我們的Linux環境沒有安裝vim

原创 通過實現Linux下的進度條引發的一系列問題

 Linux下實現進度條代碼如下: 1 #include<stdio.h>   2 #include<unistd.h>   3 void Progess()   4 {   5         char arr[101];   6   

原创 關於給定棧求出所有合法棧的思考

關於給定棧求出所有合法棧的思考    前幾天看到一篇關於給定幾個元素,給一個出棧的順序,判斷出棧的順序是否合法,我們也可以通過給定的元素順序求出所有的合法的出棧順序,困擾我的問題是如何求出給定元素的所有的排列問題,之前有篇博文也有求三個數

原创 有序數組旋轉的問題

1、有序數組旋轉後尋找數組中的最小值 一般情況下我們的第一反應肯定是遍歷此數組,但這肯定不是我們所期望的,因爲此數組是有序數組旋轉而成,所以我們此時應該想到用二分法來尋找數組中的最小值。假設我們給定遞增數組{0,1,2,3,4,5,6,7

原创 兩個棧實現一個隊列,兩個隊列實現一個棧

問題1:用兩個棧實現一個隊列,實現隊列的push和delete操作 棧的特性是先進後出(FILO),隊列的特性是先進先出(FIFO),在實現delete時,我們的難點是如何將棧中最底層的數據拿出來,我們有兩個棧,所以我們可以將一

原创 Linux基礎篇——線程

線程的概念:線程是操作系統調度的最小單元,在Linux平臺下線程是進程的基本單位。 線程間的很多資源都是共享的,例如 文件描述符,每種信號的處理方式,當前工作目錄,用戶id和組id,但線程有的資源是各有一份的,比如線程id,上下

原创 二叉樹——重建二叉樹

問題:給定二叉樹的前序遍歷結果和中序遍歷結果,恢復出原二叉樹。假設二叉樹中的元素都不重複,給定二叉樹的前序遍歷序列{1,2,4,7,3,5,6,8},二叉樹的中序遍歷序列{4,7,2,1,5,3,8,6}。 看到此題,我首先想到的

原创 Linux基礎篇——死鎖

死鎖 所謂死鎖,是指多個進程循環等待它方佔有的資源而無限期地僵持下去的局面。很顯然,如果沒有外力的作用,那麼死鎖涉及到的各個進程都將永遠處於封鎖狀態。 死鎖產生的原因 (1) 因爲系統資源不足。 (2) 進程運行推進的順序