原创 Linux系統--ELF文件之可重定位文件(Relocatable file)解析

    Linux下ELF文件類型分爲以下幾種:     1、可重定位文件,例如SimpleSection.o;     2、可執行文件,例如/bin/bash;     3、共享目標文件,例如/lib/libc.so。

原创 架構模式--函數回調機制、異步函數回調機制圖例詳解

函數回調機制,一種雙向調用思想,簡單來說就是,如下圖所示:             在層次一中的方法一(函數)調用層次二中的方法,並傳入函數二的地址,而這個被調用的方法又會調用層次一中的方法,這個最後被調用的方法二就是回調方法。方

原创 C/C++開發--#pragma pack(n)和__attribute__((aligned(m)))的區別

    前者告訴編譯器結構體或類內部的成員變量相對於第一個變量的地址的偏移量的對齊方式,缺省情況下,編譯器按照自然邊界對齊,當變量所需的自然對齊邊界比n大 時,按照n對齊,否則按照自然邊界對齊;後者告訴編譯器一個結構體或者類或者聯合或者一

原创 Linux系統--/proc/uptime文件中參數說明

有關/proc/uptime這個文件裏兩個參數所代表的意義:   [root@app ~]#cat /proc/uptime  3387048.81 3310821.00   第一個參數是代表從系統啓動到現在的時間(以秒爲單位): 338

原创 Windows開發--控制程序運行單一進程

    實際開發中,特別是那些對系統資源(如某些硬件等)要求唯一訪問的軟件系統來說,僅允許一個進程的存在,這就需要對進程的數目進行嚴格控制,下面說明windows下的兩種方法的實現。     文章轉載的,懶的寫了。 方法一:使用#pra

原创 Linux開發--相對時間

今天,再次碰到一個由於系統時間調整導致的bug。不得不再次查找完美的問題解決方案。 雖然,按道理來說,系統時間進行重置之後,一些應用程序的行爲出現異常是合乎情理,並且是可以被理解並接受的,最重要的是這樣的問題都可以通過重新啓動操作系統來

原创 Linux系統--ELF文件之可執行文件(Executable file)解析

    Linux下ELF文件類型分爲以下幾種:     1、可重定位文件,例如SimpleSection.o;     2、可執行文件,例如/bin/bash;     3、共享目標文件,例如/lib/libc.so。

原创 macOS--使用Boot Camp安裝雙系統後win10下羅技鼠標藍牙連接延遲(卡頓、不跟手)的解決辦法

使用Boot Camp安裝雙系統(macOS + windows 10)後,啓動win10,開始未安裝BootCamp提供的驅動時通過藍牙添加鼠標(羅技 MX Anywhere 2S)後使用正常(此時未安裝無線網卡驅動),但安裝驅動後反而

原创 Linux系統--DIR,dirent,stat等結構體詳解

    最近在看Linux下文件操作相關章節,遇到了這麼幾個結構體,被搞的暈乎乎的,今日有空,仔細研究了一下,受益匪淺。 首先說說DIR這一結構體,以下爲DIR結構體的定義: struct __dirstream      

原创 Linux系統--淺談標準I/O緩衝區

標準I/O庫提供緩衝的目的是儘可能地減少使用read和write調用的次數。它也對每個I/O流自動地進行緩衝管理,從而避免了應用程序需要考慮這一點所帶來的麻煩。不幸的是,標準I/O庫最令人迷惑的也是它的緩衝。 標準I/O提供了三種

原创 Linux系統--awk命令

awk是行處理器: 相比較屏幕處理的優點,在處理龐大文件時不會出現內存溢出或是處理緩慢的問題,通常用來格式化文本信息 awk處理過程: 依次對每一行進行處理,然後輸出 awk命令形式: awk [-F|-f|-v] ‘BEGIN{} /

原创 Linux開發--IO多路複用之epoll總結

1、基本知識   epoll是在2.6內核中提出的,是之前的select和poll的增強版本。相對於select和poll來說,epoll更加靈活,沒有描述符限制。epoll使用一個文件描述符管理多個描述符,將用戶關係的文件描述符的事

原创 Linux系統--從malloc中窺探Linux內存分配策略

    轉載自: http://www.cnblogs.com/cherishui/p/4208858.html     malloc函數是C/C++中常用內存分配庫函數,本篇文章將以Linux平臺上的malloc爲剖析對象,深入瞭

原创 Linux開發--時序競態與解決辦法

一、信號引起的競態     競態是指設備或系統出現不恰當的執行時序,而得到不正確的結果,由於時間片,或其他因素,導致該到達並響應的信號沒有被響應,這就是由信號引起的競態。    假設我們要寫一個sleep函數,其中利用到了信號,編寫的過程

原创 Linux系統--時間戳計數器TSC

    TSC 是時間戳計數器的縮寫,它是 Pentium 兼容處理器中的一個計數器,它記錄自啓動以來處理器消耗的時鐘週期數。在每個時鐘到來時,該計數器自動加一。     因爲 TSC 隨着處理器週期速率的變化而變化,所以它提供了非常