1. 名詞解釋共用記憶體的應用程式必須要保護共用資源,防止共用資源被並發的訪問。核心耶不例外。共用資源之所以要防止並發訪問,是因為如果多個執行線程同時訪問資料和操作資料,就有可能發生各線程之間相互覆蓋共用資料的情況,造成被訪問資料處於不一致狀態。所謂臨界區(critical region)就是訪問和操作共用資料的程式碼片段。如果兩個執行線程有可能處於同一個臨界區中,那麼這就是程式包含了一個bug,如果這種情況確實發生了,我們就稱它是競爭條件(race
介紹內嵌函式之前,有必要介紹一下預先處理宏。內嵌函式的功能和預先處理宏的功能相似。相信大家都用過預先處理宏,我們會經常定義一些宏,如#define TABLE_COMP(x) ((x)>0?(x):0)
1.
5. 完成變數如果在核心中一個任務需要發出訊號通知另一個任務發生了某個特定事件,利用完成變數(completion
1. 概述系統能夠隨機訪問固定大小資料片的裝置稱為塊裝置,這些資料片稱作塊。另一種基本的裝置類型是字元裝置。字元裝置按照位元組流的方式被有序訪問,像串口和鍵盤都屬於字元裝置。這兩種類型的裝置的根本區別在於它們是否可以被隨機訪問,換句話說,就是能否在訪問裝置時隨意從一個位置跳到另一個位置。字元裝置僅僅需要控制一個位置--當前位置;而塊裝置訪問的位置必須在介質的不同區間前後移動,同時塊裝置對執行效能的要求很高。如何管理塊裝置和如何管理隊塊裝置的請求,該部分在核心中被稱為塊I/O層。 2.
1. system函數#include <stdlib.h>int system(const char *cmd);如果cmd是一個null 指標,則僅僅當命令處理常式可用時,system返回非0值。因為system在其實現中調用了fork,exec和waitpid,因此有三種傳回值:1). 如果fork失敗或者waitpid返回除EINTR之外的出錯,則system返回-1,而且errno中設定了錯誤類型。2).
1. 通用檔案系統介面 虛擬檔案系統(VFS)作為核心子系統,為使用者空間程式提供了檔案系統相關的介面。系統中所有檔案系統不但依賴VFS共存,而且也依靠VFS系統協同工作。通過VFS,程式可以利用標準的UNIX檔案系統對不同介質上的不同檔案系統進行讀寫操作。 2. 檔案系統抽象層
fprintf是像printf那樣格式化輸出到檔案,而fwrite是按一個位元組塊一個位元組塊的方式寫到檔案。一般儲存資料用fwrite寫到二進位檔案中。但為方便有時需要格式化資料到檔案,這時才用fprintf,如fprintf(fp, "%.2f %c %d", fTest, cTest,
4. slab層為了便於資料結構的頻繁分配和回收,會用到一個空閑鏈表。它相當於對象快取以便快速儲存頻繁使用的物件類型。在核心中,空閑鏈表面臨的主要問題是不能全域控制。為了彌補這一缺陷,Linux核心提供了slab層(slab分配器)。 4.1.
/******* 匯出到excel EXEC master..xp_cmdshell ’bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""’/*********** 匯入Excel SELECT * FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’, ’Data Source="c:\test.xls";User ID=Admin;
文章目錄 1. 註冊所有容器格式和CODEC:av_register_all()2. 開啟檔案:av_open_input_file()3. 從檔案中提取流資訊:av_find_stream_info()4. 窮舉所有的流,尋找其中種類為CODEC_TYPE_VIDEO5. 尋找對應的解碼器:avcodec_find_decoder()6. 開啟轉碼器:avcodec_open()7. 為解碼幀分配記憶體:avcodec_alloc_frame()8.
關鍵字:註冊表,DLL,注入. 關鍵函數:無.系統安全:特殊註冊表索引值"AppInit_Dlls" 發布時間:2008.07.04 04:43 來源:賽迪網 作者:smallfrogs【賽迪網-IT技術報道】如果你對電腦安全有所瞭解,那麼各種各樣的註冊表啟動項應該會有所瞭解,今天我會細述一個很著名的啟動項:AppInit_Dlls索引值。 AppInit_Dlls索引值位於註冊表 HKLM/Microsoft/Windows
ffmpeg作為一個支援非常多視頻、音頻格式的開源項目,其應用灰常廣泛。今兒在這我們就探討一下讀者對其的理解,其中不泛錯誤謬誤,望各位大大批評指教。這樣做的原因主要是官方的文檔比較匱乏。經過無數摸索,有一些經驗分享。1、Overviewffmpeg裡有幾個重要的概念,熟悉它們以後,事情就變得簡單多了。AVFormatContext代表一個開啟的檔案或者別的媒體,總之可以說代表資料的來源。視頻和音頻是按照一定格式儲存在檔案中的。這種格式僅僅指定如何把視頻和音頻流區分開來,至於視頻如何變成映像,那是
一、RTMP包頭RTMP協議 封包 參考Red5RTMP協議封包 由一個包頭和一個包體組成,包頭可以是4種長度的任意一種:12, 8, 4, 1 byte(s).完整的RTMP包頭應該是12bytes,包含了時間戳記,Head_Type,AMFSize,AMFType,StreamID資訊, 8位元組的包頭只紀錄了時間戳記,Head_Type,AMFSize,AMFType,
realloc 原型:extern void *realloc(void *mem_address, unsigned int newsize); 用法:#include <alloc.h> 功能:改變mem_address所指記憶體地區的大小為newsize長度。 說明:如果重新分配成功則返回指向被分配記憶體的指標,否則返回null 指標NULL。 當記憶體不再使用時,應使用free()函數將記憶體塊釋放。 舉例: //
#ifdef UNICODE #undef UNICODE#endif#include <rpc.h>#include <stdio.h>#include <stdlib.h>#include <io.h>#include <fcntl.h>#include <stdarg.h>#include <windows.h>#define SECURITY_WIN32#include
1. exit函數我們知道,進程有五種正常終止:1). 從main函數執行return語句,如同調用exit一樣。2). 調用exit。此函數有ISO C定義,其操作包括調用各中終止處理常式,然後關閉所有標準I/O流等。因為ISO C並不處理檔案描述符,多進程以及作業控制,所以這一定義對UNIX系統是不完整的。3). 調用_exit或_Exit。ISO
最近在做一個SPC/SQC 的項目。其中有一處用到了stl map。得到了一個小小的心得,分享給大家。 我們知道,在向map中插入資料對時候,map中的元素將按照一定的順序被插入到對應的節點上,換句話說,從map的頭開始順序地讀取資料,其資料的順序將不同於你插入時候的順序, 例子如下: std::map<double,int> dnMap; dnMap[10.0] = 1; dnMap[2.9] = 2; dnMap[20.4] = 3;
1. exec函數#include <unistd.h>int execl(const char*pathname, const char *arg0, ..., /* (char *) 0*/);int execv(const char*pathname, const char *argv[]);int execle(const char*pathname, const char *arg0, ..., /* (char *) 0, char *const envp[] */)
先行編譯標頭檔(一般副檔名為.PCH),是把一個工程中較穩定的代碼預先編譯好放在一個檔案(.PCH)裡。這些預先編譯好的代碼可以是任何的C/C++代碼--甚至可以是inline函數,只它們在整個工程中是較為穩定的,即在工程開發過程中不會經常被修改的代碼.。