Time of Update: 2018-12-06
爵士鼓技巧不會太多,但它絕對會要求基礎,比如單跳雙跳複合跳,每天要堅持四個小時以上的練習,不管你現在技術多麼的好1.姿勢座正以後,先右手打擊8下,左手後打擊8下,然後變6下.4.3.2,然後變為單跳,剛開始要慢,然後逐漸加速度,在打擊時要時刻聽著你兩手打擊出來的音色是否協調,讓別人聽著你像是用一個手打的!每個人一般感覺右手重,左手輕,那你就按照以上的方法去練,要感覺你兩個手是在爭搶,而不是右手讓著左手,久而久之,你的左右手協調性就會好了!2.各種節奏練習,我們所熟知的前8分後16分,相信大家應該
Time of Update: 2018-12-06
在unix下面做開發,查看man手冊是非常必要,也是非常需要的。如何更快速的使用man?當然,平時有不會的命令,或者記不住命令的參數時,就會man一下,可是在unix man手冊裡有這樣一個現象,比如你想查看一下read()這個C庫函數的功能和參數以及用法。man
Time of Update: 2018-12-06
一、PCLint簡介:PC-Lint 是 GIMPEL SOFTWARE公司開發的 C/C++軟體代碼靜態分析工具,它的全稱是 PC-Lint/FlexeLint for C/C++,PC-Lint 能夠在Windows、MS-DOS和 OS/2平台上使用,以二進位可執行檔的形式發布,而FlexeLint運行於其它平台,以原始碼的形式發布。PC-lint 在全球擁有廣泛的客戶群,許多大型的軟體開發組織都把 PC-Lint
Time of Update: 2018-12-06
一、使用deb包1. 查看deb包含有哪些檔案(不安裝)$ dpkg -c xxx.deb // 安裝前根據deb檔案查看$ dpkg -L debname // 安裝後根據包名查看2. 安裝deb包$ dpkg -i xxx.deb注意,如果提示錯誤,可以加參數—force-all強制安裝,但不推薦這樣做3. 查看某個檔案屬於哪個deb包$ dpkg -S filepath4. 移除deb包$ dpkg -r debname二、製作deb包1. 原理1)
Time of Update: 2018-12-06
GNU binutils是一組二進位工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip. 本文歸納他們的常用法。 ar
Time of Update: 2018-12-06
一、問題描述:int main(){ int i = 1; while(1) { printf("%d", i); sleep(1); i++; }}終端無輸出結果。 二、分析問題1. 標準輸出(stdout)是行緩衝模式。其何時會輸出在於:printf裡有'/n',fflush(stdout)或setbuf(stdout,
Time of Update: 2018-12-06
函數getopt()用來分析命令列參數,其函數原型和相關變數聲明如下: #include extern char *optarg; extern int optind, // 初始化值為1,下一次調用getopt時,從optind儲存的位置重新開始檢查選項,也就是從下一個'-'的選項開始。 extern int opterr, // 初始化值為1,當opterr=0時,getopt不向stderr輸出錯誤資訊。 extern int optopt; //
Time of Update: 2018-12-06
文章目錄 函數屬性(Function Attribute)變數屬性(Variable Attributes)類型屬性(Type Attribute) __attribute__可以設定函數屬性(Function Attribute)、變數屬性(Variable Attribute)和類型屬性(Type
Time of Update: 2018-12-06
一、先學習apache2的安裝和配置;二、安裝和配置Twiki安裝環境:虛擬機器ubuntu 10.04 (Linux ubuntu 2.6.32-25-generic #45-Ubuntu SMP i686 GNU/Linux)1. 把twiki作為apache2的預設配置,將twiki解壓後放在/var/www/下,建立並修改相關檔案(在twiki下都有副本,可以直接拷貝,稍加改動即可用),需要修改的檔案: bin/LocalLib.cfg
Time of Update: 2018-12-06
關注的角度不同,因此如何利用objdump就要看你的抉擇了!因為電腦大都是採用哈佛結構,資料和指令分開儲存的的程式組織形式,因此當我門編譯,彙編,串連,(符號解吸,段的重定位)。而為了能讓程式更好的被執行,最終產生的目標檔案包含了足夠多了資訊生怕自己被歧視而不被執行。所以面對2進位的目標檔案來說,我門是很難發現或者看到什麼有用的資訊,因此objdump這個工具的實際意義是多麼的令人喜愛,只有當你要探索一個目標檔案的組織形式的時候就能體會了更多的細節建議看看《深入理解電腦》這本書的第二部分第七章節
Time of Update: 2018-12-06
一.聲明 雖然Linux的核心代碼大部分是用C語言編寫的,但是不可避免的其中還是有一部分是用組合語言寫成的。有些組合語言代碼是直接寫在彙編來源程式中的,特別是Linux的啟動代碼部分;還有一些則是利用gcc的內嵌組合語言嵌在C語言程式中的。這篇文章簡單介紹了gcc中的內嵌式組合語言,主要想協助那些才開始閱讀Linux核心代碼的朋友們能夠更快的入手。
Time of Update: 2018-12-06
MPlayer 是我在 Linux 系統中用到的相當好的媒體播放程式,它因支援播放廣泛的音/視頻檔案格式而著稱。本文所要探討的,除卻一般的使用方法之外,更包括一些鮮為人知的提示和訣竅。相信在閱讀此文後,你的多媒體播放體驗將會增色不少。播放檔案使用 MPlayer 播放媒體檔案最簡單的方式是:mplayer <somefile> MPlayer
Time of Update: 2018-12-06
最近遇到個問題,需要寫個測試程式,從使用者態讀取DM365裡寄存器的資料。有兩個方案:1.自己寫個驅動,提供個ioctl的介面,提供讀取寄存器資料的功能2.通過mmap(),讀取寄存器內容方案一太過麻煩,本身需要的只是個小的測試程式,實現驅動工作量太大了,所以採用方案2.關於mmap的內容網上已經有很多了,這裡進行下大概的介紹:標頭檔: 原型: void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t
Time of Update: 2018-12-06
1. I/O模型 Unix下共有五種I/O模型 a. 阻塞I/O b. 非阻塞I/O c. I/O複用(select和poll) d. 訊號驅動I/O(SIGIO) e. 非同步I/O(Posix.1的aio_系列函數) 1). 阻塞I/O模型 應用程式調用一個IO函數,導致應用程式阻塞,等待資料準備好。 如果資料沒有準備好,一直等待。。。。 資料準備好了,從核心拷貝到使用者空間 I/O函數返回成功指示2). 非阻塞I/O模型
Time of Update: 2018-12-06
對於多線程應用程式,如果能夠給每個線程命名,那麼調試起來的便利是不言而喻的。 今天看LWN上的周報,看到有人正在給prctl添加給進程內其它線程命名的介面,並從中得知,給線程自身命名的介面已經存在,不由竊喜,遂寫下以下驗證代碼:#include #include #include void* tmain(void *arg) { char name[32]; prctl(PR_SET_NAME, (unsigned long)"xx"); prctl(PR_GET_NAME,
Time of Update: 2018-12-06
(2008-04-01 15:43:20)轉載標籤: iconv分類: PHP專題 更廣義的字元集轉換:iconv 在先前的章節中,我們已見到了兩組 mbs 與 wcs 互轉的函式,第一組對於有「狀態改變」的編碼系統 mbs 無法做到字串的狀態控制,故不適合做該 mbs 的轉換工作;而第二組則可以直接做字串的狀態控制,故使用範圍就更廣了。然而,這兩組字串轉換函式在某些使用場合下都有很大的限制,廣義而言,它們都屬於「字元集轉換函式」,然而它們都直接與 I18N、locale
Time of Update: 2018-12-06
文章目錄 Ubuntu 10.04 Lucid Lynx 解決方案一:找了半天,中文論壇實在找不到方法,結果在一個國外的某人的部落格上找到了,嘿嘿 方法如下:Ubuntu 10.04 Lucid LynxAfter completing the installation procedure of Ubuntu 10.04 Lucid Lynx,I had finished installation of some Ubuntu
Time of Update: 2018-12-06
轉自:http://bbs.chinaunix.net/thread-1685440-1-1.html很多程式員都遇到過這樣的問題:已經上線運行很長時間的系統出了問題,並且其中的很多程式經過了多次的修改和升級,日誌中的資訊和現有的程式完全對不上號!怎樣才能查看程式的資訊(例如版本號碼、編譯的時間等)、以確定程式的確切版本呢?很多的版本管理工具(例如CVS、SVN)可以幫你管理源碼的版本,但並不會在編譯的時候把編譯資訊寫到二進位執行碼中去。因此,還是要通過其他手段來實現。
Time of Update: 2018-12-06
核心通過 printk() 輸出的資訊具有記錄層級,記錄層級是通過在 printk() 輸出的字串前加一個帶角括弧的整數來控制的,如 printk("<6>Hello, world!/n");。核心中共提供了八種不同的記錄層級,在 linux/kernel.h 中有相應的宏對應。#define KERN_EMERG "<0>" /* system is unusable */#define KERN_ALERT "<1>" /*
Time of Update: 2018-12-06
要先加個使用者名稱,再設定密碼。其實SMB可以使用使用者名稱列表,具體的嗎,不怎麼好說清楚,就是說SMB伺服器可以設定帳號映射,就是說SMB使用者可以不是系統使用者在SMB.conf檔案中可以開啟使用者帳號映射, 方法: 先開啟smb.conf這個檔案,找到:username map =/etc/samba/smbusers 這一項把前面的分號去掉,記住username map= 後面的路徑然後手動的編輯這個檔案使用命令:vi /etc/samba/smbusers 這個命令是編輯