原创 linux環境tcp/ip錯誤碼

基於 UNIX 的環境中的 TCP/IP 用戶,下表列出了某些最常見的錯誤原因碼 (errno)。完整的錯誤列表可以在文件 /usr/include/sys/errno.h 中找到 Errno。針對每一種操作系統給出了errno 號碼。

原创 鏈接與裝載---鏈接過程控制之鏈接腳本

目錄 爲什麼需要鏈接腳本 鏈接腳本語法 指定鏈接腳本編譯 參考 爲什麼需要鏈接腳本 通常我們在編譯鏈接代碼文件時,只需要使用 $ gcc a.c 這個過程中,我們並沒有指定鏈接腳本,是不是就真的不需要鏈接腳本呢?其實ld 在用戶沒有指定

原创 音視頻開發---編譯安裝SDL_image庫

          SDL2庫內部提供了加載BMP圖片的接口,而我們常見的諸如jpg,png等格式的圖片,需要藉助第三方庫來完成,這裏我們介紹SDL2的擴展庫SDL_image的編譯安裝方法。 SDL_image簡介 這裏引用Readme

原创 ONVIF開發---gSOAP編譯安裝

  下載源碼 https://sourceforge.net/projects/gsoap2/ https://www.genivia.com/downloads.html#unix:官網下載,需要登錄   安裝依賴庫 sudo apt-

原创 RT-Thread內核源碼分析-信號量實現原理

目錄 概念 信號量基本操作 信號量初始化 獲取信號量 釋放信號量 總結 概念 信號量機概念是由荷蘭科學家Dijkstr(就是解決了最短路徑問題的那哥們)引入,它是用來協調不同進程間的數據對象的,信號量本質上而言是一個計數器, 記錄了某個資

原创 RT-Thread內核源碼分析-消息隊列實現原理

目錄 概念 消息隊列 消息隊列初始化 消息隊列-發送消息 消息隊列-讀取消息 總結 概念 消息隊列本質上是存放消息的鏈接表 ,存放在內核中,內核通過維護這個鏈表來維護消息隊列。 消息隊列的初始化就相當於創建一個空閒的鏈表, 能夠存放一定數

原创 音視頻開發---音視頻同步算法

  目錄 ffplay簡介 爲什麼要做音視頻同步 音視頻同步算法 參考       本文是對音視頻同步算法的總結,以閱讀ffplay.c源碼爲基礎,結合各位博主的分析, 逐漸深入理解同步算法原理, 並根據自身理解, 編寫一套簡易的視頻播放

原创 音視頻開發---ffmpeg錄像並保存爲mp4

  使用ffmpeg錄像,並保存爲mp4文件,涉及到的數據結構和函數接口如下:   代碼關鍵部分都有註釋,這裏不再過多敘述。 /** 用攝像頭錄像,並保存爲mp4文件 */ #include <stdio.h> #include

原创 鏈接與裝載---鏈接原理詳解

目錄 前言 靜態連接 第一步:地址和空間分配 第二步:符號解析和重定位 動態鏈接 爲什麼要動態鏈接 動態鏈接原理 動態鏈接器信息 動態鏈接步驟 啓動動態鏈接器 裝載共享對象 重定位和初始化   前言 爲了更好地理解計算機程序的編譯和鏈接的

原创 鏈接與裝載---編譯過程分析

目錄 預處理 編譯 彙編 鏈接   在Linux下, 當我們使用GCC來編譯程序時, 只須使用最簡單的命令 $ gcc hello.c 事實上, 上述過程可以分解爲4個步驟, 分別是預處理(Prepressing,又稱爲預編譯) 、 編

原创 nginx配置-多服務部署、負載均衡

目錄 nginx代理多個服務器 多站點 多location 負載均衡配置 nginx代理socket.io服務 web前端 配置nginx.conf socket.io服務器   nginx代理多個服務器 主要有兩種方式 多站點 常用於在

原创 鏈接與裝載---函數調用過程棧幀變化分析

  目錄 概述 函數調用過程中棧幀變化分析 準備知識 彙編代碼語法風格 x86寄存器介紹 函數調用約定 函數棧幀分析 總結 參考 附錄 cdecl   概述 學過c語言的同學都知道,函數調用過程是通過棧結構來實現的, 在內存空間中, 棧可

原创 音視頻開發---快速理解ONVIF規範

目錄 ONVIF規範介紹 Web Service Web service介紹 WSDL SOAP RTSP RTSP消息格式 rtsp交互過程 ONVIF項目開發流程 致謝         這篇文章是對ONVIF規範的一些重要知識點進行總

原创 鏈接與裝載---理解ELF文件

目錄 elf文件整體透視 elf核心數據結構分析 1. ELF_Header 2. Program Header 3. Section Header Table elf實例總結 細節說明 1. elf可執行文件的執行入口地址是怎麼確定的?

原创 鏈接與裝載---Linux下c語言main函數調用原理

目錄 main函數調用過程說明 其他說明   main函數調用過程說明 在學習完鏈接過程控制之鏈接腳本這一節之後,我們知道,linux環境下可執行文件並不是從main開始執行的, 入口是在默認鏈接腳本中使用ENTRY()指定的, 通過執行