原创 高級 IO

目錄 IO 簡介 五種 IO 模型 阻塞 IO 非阻塞 IO 信號驅動 IO IO 多路轉接 異步 IO IO 多路轉接 — select 詳解 select 系統調用 函數參數 函數返回值  fd_set 結構 timeval 結構 s

原创 關於信號:從它的出生說起吧...

目錄 信號的生命週期 信號的產生 硬件異常 終端相關的信號 nohup setsid disown 軟件事件相關的信號 信號的默認處理函數 信號的分類 傳統信號的特點 信號的可靠性 信號的安裝 信號的發送 kill tkill、tgkil

原创 理解 Linux 線程

目錄 線程與進程 進程 ID 和線程 ID pthread 庫接口 線程的創建和標識 pthread_create 函數 參數介紹 返回值 線程 ID 及進程地址空間佈局 兩類線程 ID 說明 進程地址空間 線程創建的默認屬性 線程的退出

原创 數據結構—二叉樹相關概念及經典面試題

二叉樹概念 一棵二叉樹是結點的有限集合,該集合或者爲空, 或者是由根結點加上兩棵分別稱爲左子樹和右子樹的二叉樹構成 二叉樹的特點: 每個結點最多有兩棵子樹,即二叉樹不存在度大於2的結點 二叉樹的子樹有左右之分,其子樹的次序不能顛倒 滿二叉

原创 進程控制:狀態、調度和優先級

目錄 進程的狀態 可運行狀態 可中斷睡眠狀態和不可中斷睡眠狀態 睡眠進程和等待隊列 TASK_KILLABLE 狀態 TASK_STOPPED 狀態和 TASK_TRACED 狀態 EXIT_ZOMBIE 狀態和 EXIT_DEAD 狀態

原创 [LeetCode — 11] 盛最多水的容器

目錄 1.題目描述 2.解決方案 1.題目描述     題目鏈接: 盛最多水的容器  給定 n 個非負整數 a1,a2,...,an,每個數代表座標中的一個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別爲 (i

原创 [LeetCode — 5] 最長迴文串

目錄 1.題目描述 2.解決方案 1.題目描述     題目鏈接:最長迴文串     給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。  示例 1: 輸入: "babad" 輸出: "bab" 注意

原创 [LeetCode — 15] 三數之和

目錄 1.題目描述 2.解決方案 1.題目描述     題目鏈接:三樹之和     相似題目1:[LeetCode — 16] 最接近的三數之和     相似題目2:[LeetCode — 18] 四數之和 給定一個包含 n 個整數的數組

原创 [LeetCode — 3] 無重複字符的最長字串

目錄 1.題目描述 2.解決方案 1.題目描述     題目鏈接:無重複字符的最長字串     給定一個字符串,請你找出其中不含有重複字符的最長字串的長度。 示例 1: 輸入: "abcabcbb"        輸出: 3       

原创 [LeetCode — 6] Z 字形變換

目錄 1.題目描述 2.解決方案 1.題目描述     題目鏈接:Z 字形變換     將一個給定字符串根據給定的行數,以從上往下、從左到右進行 Z 字形排列。     比如輸入字符串爲 "LEETCODEISHIRING" 行數爲 3

原创 [LeetCode — 26] 刪除排序數組中的重複項

目錄 1.題目描述 2.解題思路 1.題目描述     題目鏈接:刪除排序數組中的重複項   給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。不要使用額外的數組空間,你必須在原地修改輸入數

原创 進程間通信:管道

目錄 管道 管道概述 管道接口 關閉未使用的管道文件描述符 關閉無用的管道寫入端 關閉無用的管道讀取端 管道對應的內存去大小 shell 管道的實現 在 Linux 系統中,有時候需要多個進程相互協作,共同完成某項任務。進程之間或線程之間

原创 寫在“答案”之前。

       北京時間 2019 年 5 月 9 日,休斯頓火箭和金州勇士系列賽第五場終場的那一刻,庫裏的那一蹲,註定是NBA籃球進程中最經典的畫面之一。        那一刻,我不知道應該以怎樣的方式去理解,給了我非常大的衝擊。王猛寫到

原创 信號

目錄 信號的生命週期 信號的產生 硬件異常 終端相關的信號 nohup setsid disown 軟件事件相關的信號 信號的默認處理函數 信號的分類 傳統信號的特點 信號的可靠性 信號的安裝 信號的發送 信號與線程的關係 等待信號 信號

原创 進程控制:進程的一生

進程是操作系統一個核心概念。每個進程都有自己的唯一標識:進程 ID,也有自己的生命週期,一個典型的進程的生命週期如圖: 進程 ID Linux 下每個進程都會有一個非負整數表示的唯一進程 ID,簡稱 pid。Linux 提供了 getp