原创 終端,作業控制與守護進程

進程組   概念:一個或多個進程的集合。   每一個進程除了有一個進程ID外,還屬於一個進程組,同時也只能屬於一個進程組。每個進程組都有一個唯一的進程組ID,且都可以有一個組長進程。一般在進程組中,第一個進程是組長進程。   爲啥要創建進程

原创 linux中make命令的簡單使用以及Makefile文件的書寫

    Makefile       會不會寫makele,從一個側面說明了一個是否具備完成大型工程的能力。    一個工程中的源件不計數,其按類型、功能、模塊分別放在若干個目錄中,makele定義了一系列的規則來指定,哪些文件需要先編譯,

原创 進程間通信之管道

進程間通信之管道進程間通信:每個進程各自有不同的用戶地址空間,任何一個進程的全局變量在另一個進程中都看不到,所以進程之間要交換數據必須通過內核(操作系統),在內核中開闢一塊緩衝區,進程1把數據從用戶空間拷到內核緩衝區,進程2再從內核緩衝區把

原创 死鎖的產生以及處理

死鎖的概念:    如果一組進程中的每一個進程都在等待僅由改組進程中的其他進程才能引發的事件,那麼改組進程是死鎖的。產生死鎖的原因:    1、競爭資源引發進程死鎖     1)可剝奪資源和不可剝奪資源  系統中的資源可以分爲兩類,一類是可

原创 將博客搬至CSDN

博客搬家

原创 信號

信號的產生、阻塞以及捕捉用kill -l命令可以查看系統定義的信號列表:一、產生信號1、如何產生信號?(1)通過終端按鍵產生信號    SIGINT的默認處理動作是終止進程,SIGQUIT的默認處理動作是終止進程並且 Core Dump,那

原创 vim的簡單配置

配置文件的默認位置:    在目錄/etc/下面,有個名爲vimrc的文件,這是系統中公共的vim配置文件,對所有用戶都有效。而在每個用戶的主目錄下,都可以建立私有的配置文件,命名爲:“.vimrc”。    用戶可以在自己主目錄下建立私有

原创 共享內存及其用mmap實現共享內存

一、什麼是共享內存顧名思義,共享內存就是允許兩個不相關的進程訪問同一個邏輯內存。共享內存是在兩個正在運行的進程之間共享和傳遞數據的一種非常有效的方式。不同進程之間共享的內存通常安排爲同一段物理內存。進程可以將同一段共享內存連接到它們自己的地

原创 ctags的簡單配置及其使用

    Tag文件簡介:    tags文件(標籤文件)是由ctags程序產生的一個索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 並且比它功能強大, 是大多數Linux發行版上

原创 迷宮問題

    基於棧實現解決迷宮問題     棧是一種非常常見的數據結構,在計算機領域被廣泛應用,例如操作系統會給每個線程創建一個棧用來存儲函數調用時各個函數的參數,返回地址及臨時變量等,棧的特點是後進先出,即最後被壓入(push)棧的元素會第一

原创 linux下信號量及其SEM_UNDO標誌

AT&T的貝爾實驗室,對Unix早期的進程間通信進行了改進和擴充,形成了"system V IPC",其通信進程主要侷限在單個計算機內。IPC對象指的是共享內存(share memory)、消息隊列(message queue)和信號燈集(

原创 有關字符串中的函數及其部分面試題

    有關字符串的函數(strlen、strcat、strcpy、strcmp、strncat、strncpy、strncmp、 strchr、strrchr、strpbrk、strstr、strrstr、memcpy、memmove)#

原创 vim(linux編輯器)的使用

vi/vim的區別:    1)相同:都是多模式編輯器    2)不同:vim是vi的升級版本,不僅兼容vi的所有指令,而且還有一些新的特性在裏面,例如語法加亮,可視化操作不僅可以在終端運行,也可以運行於x window、macos、win

原创 複雜鏈表的複製

    複雜鏈表的概念:    在複雜鏈表中,每個結點除了有一個_pnext指針指向下一個結點外,還有一個_pSibling指向鏈表中的任意結點或者NULL。如下圖    複雜鏈表每個結點的結構如下:    //複雜鏈表結點的結構    t

原创 平衡搜索樹之B-樹

B-樹:    一種適合外查找的平衡多叉樹(有些地方寫的是B-樹,注意不要誤讀 成"B減樹") 。M階的B樹滿足如下性質:    1、根節點至少有兩個孩子;    2、每個非根節點有[[M/2],M]個孩子;    3、每個非根節點有[[M