原创 Linux Shell 腳本調試總結

Linux Shell 腳本調試總結 Shell腳本是用戶與Linux操作系統交互的一種方式,在腳本編程過程中自然少不了進行調試工作,本文將介紹三種常用的調試方法.(默認使用bash shell) 追蹤腳本的執行 使用-x選

原创 Linux下adb devices : no permissions解決方案

Linux下adb devices : no permissions解決方案 Linux下adb工具下載,下載解壓到/usr/bin目錄。 問題 當我們在Linux下連接安卓手機,進行adb調試時,執行 adb devices 會

原创 屏蔽靜態庫接口

文章目錄準備編譯鏈接去除無用的符號隱藏的符號本地化(我也不知道中文怎麼翻譯了)打包成靜態庫驗證調用未被隱藏的`hello()`調用隱藏的`bye()` 分享屏蔽靜態庫接口的一種方法. 準備 hello.c: #include <

原创 Git倉庫過大導致clone失敗的解決方法

文章目錄錯誤一增大postBuffer使用openssl替換gunssl錯誤二淺層clone 本文記錄工作中遇到的clone大倉庫失敗的解決過程,以下問題與解決方案均基於https訪問。 錯誤一 從web端查看倉庫大小,大約1

原创 全面理解Homebrew

文章目錄Homebrew簡介安裝卸載解決軟件源更新慢問題取消更新關閉自動更新替換軟件源替換homebrew源替換homebrew-core源(核心軟件倉庫)替換homebrew-cask源(macOS應用)替換homebrew b

原创 將二進制文件作爲目標文件中的一個段

文章目錄查看該平臺的ELF文件相關信息轉換測試Reference 本文將展示,如何將一個二進制文件(如圖片、音頻等)作爲目標文件中的一個段,該技巧主要應用在一些無文件系統的平臺。 本次的實驗場景爲i386:x86-64 GNU

原创 wav文件解析

文章目錄wav文件解析wav文件簡介wav文件頭wav文件格式編碼類型wav文件讀寫API 本文將解析wav音頻文件格式,並實現一套用於讀寫wav文件的API。 wav文件解析 wav文件簡介 wav/wave文件格式是由微軟

原创 深究strtok系列函數

文章目錄函數說明說明參數返回值示例使用注意事項不會生成新的字符串,只是在源字符串上做了修改,源字符串會發生變化第一個參數不可爲字符串常量若在第一次提取子串後,繼續對源字符串進行提取,應在其後的調用中將第一個參數置爲空值`NULL`

原创 C代碼覆蓋率測試工具Gcov

文章目錄介紹簡介基本概念基本塊BB跳轉ARC程序流圖原理使用編譯數據收集報告生成注意事項圖形化展示列表形式XML文件形式HTML文件形式其它ReferenceAbout me 代碼覆蓋率測試反映了測試的廣度與深度,量化了測試和開發

原创 --hash-style兼容性問題

文章目錄問題名詞解釋實驗分析結論解決方案參考 本文記錄瞭解決 --hash-style 兼容性問題的過程。 問題 dlopen failed: empty/missing DT_HASH in "libxxx.so" (bui

原创 sysroot爲何物?

文章目錄sysroot爲何物Reference 本文介紹鏈接過程中sysroot的作用。 sysroot爲何物 做過交叉編譯的同學們,一定對下面這個錯誤十分熟悉吧: /cross-compiling/ld: cannot fi

原创 我的源碼閱讀論

我的源碼閱讀論 這是一篇隨筆。最近準備開始閱讀一些開源的項目,還有公司的項目源碼也開放給我了,準備認認真真的進入狀態啦。(PS:已經實習近兩個月了,貌似進步太慢!)。因爲我記性比較差,所以覺得有必要在這裏記錄一下自以爲比較正確有效

原创 Linux下C程序的反彙編

Linux下C程序的反彙編 前言:本文主要介紹幾種反彙編的方法。 gcc gcc的完整編譯過程大致爲:預處理->編譯->彙編->鏈接 前三個步驟分別對應了-E、-S、-c三個選項。 今天我要介紹的第一種方法就是使用-S這個選項。

原创 C語言配置文件解析庫——iniparser

C語言配置文件解析庫——iniparser 前言:在對項目的優化時,發現Linux下沒有專門的供給C語言使用的配置文件函數,於是搜索到了iniparser庫,可以像那些面嚮對象語言一樣,使用ini文件進行參數配置。 介紹 inip

原创 C語言生成隨機數

C語言生成隨機數 rand函數 函數介紹 rand()函數是產生隨機數的一個隨機函數: #include<stdlib.h> int rand(void); 返回值: rand()返回值爲一隨機數值,範圍在0至RAND_MAX