原创 10.信號

信號是軟中斷,提供了一種處理異步事件的方法 1、信號概念 以SIG開頭的,如夭折信號SIGABRT,鬧鐘信號SIGALRM等,linux 3.2.0支持31種,Solaris 10支持40種,POSIX實時擴展支持用戶自定義

原创 13.守護進程

因爲沒有控制終端,在後臺運行,所以需要了解出現問題時如何報告出錯情況。 1.守護進程的特徵 1.1 父進程ID爲0的通常是內核進程(系統引導裝入過程的一部分而啓動) kswapd:內存換頁守護進程 flush:內存達到最

原创 07.進程環境

1、main()函數 內核執行C程序時(使用一個exec函數),先調用一個特殊的啓動例程(編譯器調用連接編輯器,連接編輯器設置啓動例程地址),啓動例程從內核取得命令行參數和環境變量值。 2、進程終止 8種方式 1.mai

原创 12.線程控制

1.線程屬性 可以在運行階段使用sysconf()檢查系統對線程屬性的支持情況int pthread_attr_init(pthread_attr_t *attr); int pthread_attr_destroy(pthre

原创 線程不設置成分離狀態的隱患

引言:入職培訓的時候講課老師說建議大家在創建線程後馬上將它設置爲分離狀態,否則它結束後資源不會被回收。鑑於他前面說的有些話並不準確,所以這句話我也不怎麼相信。 1.然後我在《UNIX環境下高級編程》的11.5節找到了下面這句

原创 expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’

這篇準備長期更新… 1.在編譯時遇到錯誤 錯誤: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’ src/cli_socket_handle.c:

原创 CMake -語法摘要

參見《CMake practice》 基本語法 PROJECT指令的語法:PROJECT(projectname [CXX] [C] [Java]) projectname 即工程名 支持的語言列表可忽略 生成了兩個變量 <

原创 shell編程--正則表達式

1.BRE模式 1.1 特殊字符 .*[]^${}\+?|() 一定要使用需要轉義 . :匹配除換行符外的任意單個字符 []:匹配某個特定字符(必須匹配到) sed -n '/[ch]at/p' data6 ^:

原创 shell編程 筆記6 --創建函數

1.基本的腳本函數 1.1 創建並使用函數 #!/bin/bash function f1 { #創建方式1:使用function關鍵字 echo "This is an example of a function1"

原创 11.線程

1、線程標識 線程比較int pthread_equal(pthread_t t1, pthread_t t2); RETURN VALUE: equal returns a nonzero value; otherwise r

原创 在deepin上安裝scrcpy--安卓投屏軟件

1.效果 1.遊戲界面 2.視頻界面 可以自動橫屏,感受不到卡頓,幀率可以設置,實際效果比下面GIF展示的要好很多 2.安裝 1.容易找到源碼地址:https://github.com/Genymobile/scrcpy

原创 sqlite3----第一天

1.編譯 1.獲取源碼:wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz 2.解壓源碼包 tar xvf sqlite-autoconf-32800

原创 初識sed與gawk

1.sed流編輯器 一次從輸入中讀取一行數據。 根據所提供的編輯器命令匹配數據。 按照命令修改流中的數據。 將新的數據輸出到 STDOUT 格式:sed options script file 舉例: 1.sed -e

原创 shell編程 筆記5 --處理用戶輸入

1.命令行參數 1.1 通過位置參數獲取,例如: #!/bin/bash total=$[ ${10} * ${11} ] #命令行參數得用空格隔開 echo The tenth parameter is ${10}

原创 shell編程 筆記4 --更多結構化命令

1. for 1.1 讀取列表中的值(for 循環假定每個值都是用空格分割的) 例如: #!/bin/bash for test in Alabama Alaska Arizona Arkansas California Co