原创 linux信號(轉)

一、EAGAIN信號 在Linux環境下開發經常會碰到很多錯誤(設置errno),其中EAGAIN是其中比較常見的一個錯誤(比如用在非阻塞操作中)。   從字面上來看,是提示再試一次。這個錯誤經常出現在當應用程序進行一些非阻塞(non

原创 多進程——孤兒進程或者殭屍進程解決方法

多進程中,難免會出現父進程先於子進程退出或者子進程先於父進程退出,爲此分爲兩種情況,若父進程先於子進程先退出,則子進程相當於孤兒進程;若子進程先於父進程先退出,則子進程相當於殭屍進程。 fork在 <unistd.h>文件中定義如下:

原创 多線程——主線程和子線程退出關係

分清兩個概念 主線程和當前進程的關係:當前進程由主線程和若干個子線程組成。 若當前進程退出後,子線程也會跟着一起退出;若只是主線程退出,仍要分兩種情況分析:實際上主線程退出後子線程的狀態依賴於它所在的進程,如果進程沒有退出的話子線程依

原创 Linux下的tar壓縮解壓縮命令詳解(轉)

tar -c: 建立壓縮檔案 -x:解壓 -t:查看內容 -r:向壓縮歸檔文件末尾追加文件 -u:更新原壓縮包中的文件 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓

原创 linux網絡基礎知識1

1、OSI系統七層模型: 物——物理層(雙絞線,光纖) 數——數據鏈路層(數據的傳輸和錯誤檢測) 網——網絡層(爲數據包選擇路由器) 傳——傳輸層(提供端對端的接口) 會——會話層(解除或建立與其他節點的聯繫) 表——表示層(數據的加

原创 C/C++ 常用類,函數庫

C/C++ 常用類,函數庫 CArchive類:用於二進制保存檔案 CBitmap類:封裝Windows的圖形設備接口(GDI)位圖 CBrush類:封裝圖形設備接口(GDI)中的畫刷 CButton類:提供Windows按鈕控件的功

原创 2019年C++再拾起

一、前言 已經將C++丟了兩年時間了,出來工作後,只與C語言打交道,學的又不深,需重新學習C++遠征攻略,地址: http://www.imooc.com/course/programdetail/pid/42 以下按課程學習: 二、

原创 linux設備驅動程序-第六章2(阻塞IO和高級休眠)學習總結

一、前言 在第三章中,我們已經討論瞭如何實現驅動程序的read和write方法。現在談論另一種重要問題:如何驅動程序無法立即滿足要求,該如何響應?調用程序通常不會關心此類問題,程序員只會簡單調用read和write,然後等待必要的工作

原创 linux設備驅動程序-第六章1(ioctl操作)學習總結

一、前言 在第三章,我們已經構建了一個結構完整的可讀寫設備驅動程序。但一個實際可用的設備除了提供同步讀取和寫入之外,還會提供更多的功能。而現在我們擁有調試工具,掌握相關的調試方法,並且對併發問題有了堅實的理解。這樣,構建更高級的驅動程

原创 linux設備驅動程序-第五章(併發和競態)學習總結

一、前言 目前爲止,我們很少關注併發問題——亦即,當系統試圖一次完成多個任務時會產生什麼結果。但是,對併發的管理是操作系統編程中核心的一個問題。爲了響應現代硬件和應用程序的需求,Linux內核已經發展到同時發展更多事情的年代了。設備驅

原创 linux設備驅動程序-第三章(簡單scull)學習總結

一、前言 花了一整天時間整理下《linux設備驅動程序》第三章的例程和總結,還是要與實踐相結合,才能學習到知識。 開發環境介紹:使用Unbuntu12.0,內核使用2.6.35.3. 以下是所需的文件: |scull.c|驅動主要實現

原创 linux內核printk用法以及相關調試

1、內核中打印信息,只能使用printk,不能使用printf。 函數原型: int printk(const char *fmt, ...); 2、printk打印等級 #define KERN_EMERG “<0>

原创 linux設備驅動開發學習

從2018年7月決定學習linux內核驅動,已經過了4個月了,期間有看過宋寶華老師的《linux設備驅動詳解》,操作了一些例程,後轉去學習網絡編程兩個月,最近又拿起linux驅動。 由於電子版排版不好看,遂買了本聖經O’Reilly的

原创 linux上oops介紹

附oops介紹(網上搜的,感謝作者): Oops Messages Oops 消息 Most bugs show themselves in NULL pointer dereferences or by the use of oth

原创 linux內核驅動重要的數據結構

文件操作 迄今爲止, 我們已經保留了一些設備編號給我們使用, 但是我們還沒有連接任何我們設備操作到這些編號上. file_operation 結構是一個字符驅動如何建立這個連接. 這個結構, 定義在 , 是一個函數指針的集合. 每個打