原创 12、POSIX線程同步技術 - 信號量、互斥鎖、條件變量

目錄12、POSIX線程同步技術1、線程同步2、sem_init函數創建一個信號量3、sem_post函數4、sem_wait函數5、sem_destroy函數6、信號量實現生產者消費者模型7、用互斥量進行同步8、條件變量9、條件

原创 11、POSIX多線程技術

目錄11、POSIX多線程技術1、線程2、pthread_create函數3、pthread_exit函數4、pthread_join函數5、一個簡單的線程化程序6、pthread_detach回收資源 11、POSIX多線程技術

原创 10、網絡基礎和SOCKET

目錄10、網絡基礎和SOCKET1、TCP/IP協議概述2、傳輸層協議 - TCP(傳輸控制協議)3、傳輸層協議 - UDP(用戶數據報文協議)4、應用層協議5、網絡編程基礎6、socket示例 10、網絡基礎和SOCKET 1、

原创 13、SOCKET-IO複用技術 - select、poll、epoll

目錄13、SOCKET-IO複用技術1、五種I/O模型2、阻塞I/O模型3、非阻塞I/O模型4、I/O複用模型5、信號驅動I/O模型6、異步I/O模型7、I/O複用8、shutdown函數9、select函數10、poll函數11

原创 9、進程間通信(IPC)之消息隊列、共享內存、信號量

目錄9、進程間通信(IPC)1、進程間通信概述2、現在linux使用的進程間通信方式3、消息隊列3-1、msgget函數3-2、msgsnd函數3-3、msgrcv函數3-4、msgctl函數3-5、消息隊列代碼示例4、共享內存4

原创 8、管道 - 看這一篇就夠了

目錄八、管道1、什麼是管道2、在shell中使用管道3、管道特點4、pipe函數5、管道讀寫規則6、複製文件描述符dup、dup2 、fcntl7、popen函數8、命名管道:FIFO文件9、命名管道(FIFO文件)的打開規則10

原创 7、信號 - 看這一篇就夠了

目錄七、信號1.信號的概念2、信號名稱3、signal庫函數(接收信號)4、kill函數(發送信號)5、不可靠信號(1-31)6、可靠信號7、信號在內核中的表示8、信號集操作函數9、sigprocmask10、sigpending

原创 6、進程管理 - 看這一篇就夠了

目錄六、進程管理1.程序和進程2、linux下的進程結構3、進程狀態4、進程狀態轉換圖5、init進程6、獲取進程標識7、fork系統調用8、替換一個進程映像(exec)9、啓動新的進程(system)10、wait和waipid

原创 5、設備和文件IO - 看這一篇就夠了

目錄五、設備和文件IO1、linux文件2、什麼是設備文件3、系統調用4、C庫的文件操作5、文件描述符fd6、open系統調用7、close系統調用8、read系統調用9、write系統調用10、文件的隨機讀寫11、lseek系統

原创 4、make工具使用(makefile) - 零基礎 到 通用makefile,看這一篇就夠了!

目錄四、make工具使用(makefile)1、Makefile2、Makefile基本規則3、最簡單的Makefile例子4、make是如何工作的5、Makefile使用僞目標6、makefile中使用變量7、make自動推導8

原创 三、Shell基本編程 - 看這一篇就夠了

目錄三、Shell基本編程1、Shell編程介紹2、Shell腳本基本結構3、Shell腳本及運行4、Shell變量及表達式 - 變量類型5、常用的Shell預定義變量6、Shell變量及表達式 - 位置參數7、Shell變量及表

原创 二、Linux賬戶權限和編程工具

目錄二、Linux賬戶權限和編程工具1、Linux文件類型(字符表示)2、Linux用戶類別3、etc/passwd文件4、/etc/shadow文件5、/etc/group文件6、組的創建與用戶的創建7、Linux文件權限8、v

原创 一、Linux操作命令和常用工具

目錄一、Linux操作命令和常用工具1、Linux框架結構2、Linux內核主要功能3、Shell程序功能概述4、常見Shell程序5、常見外圍工具(桌面系統)6、Linux文件系統結構7、目錄簡介8、獲得命令幫助9、Bash外殼

原创 25、劍指offer - 複雜鏈表的複製

考點: 分解讓複雜問題簡單 題目描述: 輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。(注意,輸出結果中請不要返回參數中的節點引用,否

原创 22、劍指offer - 從上往下打印二叉樹

考點: 舉例讓抽象具體化 題目描述: 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 解題: /* struct TreeNode { int val; struct TreeNode *left; struct T