原创 source /etc/profile作用

  source /etc/profile 文件的作用 linux下使用source /etc/profile保存配置後,新的環境變量只能在一個終端裏面有效。 問題描述: 在/etc/profile中添加環境變量後,是使用sour

原创 Linux-DEVICE_ATTR()介紹及使用示例

轉自:https://www.cnblogs.com/lifexy/p/9799778.html   1.介紹 使用DEVICE_ATTR,可以實現驅動在sys目錄自動創建文件,我們只需要實現show和store函數即可. 然後在應用層就

原创 常用排序算法:冒泡、插入、快速、選擇排序

1、冒泡排序: 比較兩個相鄰的元素,將值大的元素交換到右邊    基本思想:在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。  即:每當兩相鄰的數比較後發現它

原创 多線程間的同步與互斥機制——互斥鎖與信號量

線程的同步與互斥 2019-12-07: (POSIX中2種線程同步機制) 因線程共享進程的資源、地址空間,所以對該類資源進行操作時,一定要考慮線程間資源訪問同步和互斥的問題;(2種同步機制也可互相通過調用對方來實現) 互斥鎖:更適合用於

原创 android.mk編譯規則,1個mk文件編譯多個模塊

  目錄 Android.mk 自我理解 Android.mk 是什麼? Android.mk 語法規則 規則解釋: Android.mk 編譯多個模塊實例,詳見如下: Android.mk 語法規則:變量說明   最近項目上,程序編譯是

原创 C語言中不安全函數、安全函數

轉載鏈接:https://www.cnblogs.com/balingybj/p/4730795.html (因轉載的不能提交,只能這樣了) C 中大多數緩衝區溢出問題可以直接追溯到標準 C 庫。 最有害的罪魁禍首是不進行自變量檢查的、有

原创 線程鎖問題

最近遇到2個線程鎖的問題:記錄如下 1)線程鎖初始化的方式:    線程初始化,可以有2中方式,a,直接賦初值初始化;b,使用 pthread_mutex(); 方式1:unsigned int g_deviceManage.mutex

原创 Linux pthread_creat() 創建線程失敗問題總結

Linux pthread_creat() 創建線程失敗問題總結 目錄 問題場景 問題詳細描述 問題分析定位 1)pthread_create() 函數原型 2)實測系統最多可創建的線程數 3)測試結果 4)查看shell啓動進程所佔用的

原创 什麼是回調函數?爲什麼要使用回調函數?如何使用回調函數?

1. 什麼是回調函數: 函數指針的調用,即是一個通過函數指針調用的函數; 如果你把函數的指針(地址)作爲參數傳遞給另一個函數,當這個指針被用來調用其所指向的函數時,就說這是回調函數。 In computer programming, a

原创 strchr字符查找函數族;strchrnul()

https://blog.csdn.net/jasonchen_gbd/article/details/80069134 Linux中的字符串和字節序列處理函數【Y】   字符串查找,有庫函數,可以起到事半功倍的效果,不但是代碼量減少,而

原创 sizeof 與 strlen區別

    1 /* 2 明確概念: 3 1)sizeof是一個關鍵字,目的是求某類型或數據佔用實際內存的字節數;對於結構體類型,需考慮結構體對其方式 4 2)strlen是一個函數,目的是求字符串的長度,從字符串第一

原创 pwrite寫操作——原子操作,不改變當前文件操作符位置,寫入位置offset是一個相對於fd起始地址的偏移量

意外發現,pwrite() 函數是一個原子操作,現測試驗證如下:   1 /* 2 pwrite相當於先調用lseek接着調用write。但又不完全是這樣: 3 (1)pwrite是原子操作,定位和寫操作在一個原子操作中完成

原创 linux 軟鏈接、硬鏈接

1、什麼是鏈接,鏈接的用途: 鏈接是可以理解爲文件的一種共享方式,比如windows中的快捷方式; 針對一些公共的文件,可採用軟鏈接,來解決文件多處拷貝產生的冗餘問題;或者將一些文件目錄層次較深的文件,鏈接到容易訪問的目錄中。 2、軟鏈接

原创 Makefile 中的常用函數說明:wildcard,notdir,patsubst

參考博文:https://www.cnblogs.com/haoxing990/p/4629454.html 使用make的隱含規則來編譯.c的源文件。對變量的賦值,即使用特殊的符號(:=)1、wildcard : 擴展通配符 2、not

原创 linux中的通配符指的是?

*是應用在系統中的通配符,%是應用在這個Makefile文件中的通配符。 例如,如果你想編譯一個文件夾下的所有.c文件,你可能會這樣寫: 1 %.o:%.c 2     gcc -o $@ $< 但是如果整個文件只有這兩行的話,就會出現這