STL的string很強大,用起來也感覺很舒服,這段時間在代碼中涉及到了用string存取位元據的問題,這裡記錄一下,以供以後參考。首先提一下STL中string的參考資料:http://www.cplusplus.com/reference/string/string/ ,不懂的朋友可以看下。在資料轉送中,位元據的buffer一般用系統預設的大數組進行儲存,而不是STL的string等,比如:const int max_length = 1024 * 1024;unsigned char
環境:CentOS6.2_641、下載源碼包wget ftp://ftp.videolan.org/pub/x264/snapshots/x264-snapshot-20120718-2245-stable.tar.bz2解壓:tar jxvf x264-snapshot-20120718-2245-stable.tar.bz2wget http://ffmpeg.org/releases/ffmpeg-0.11.1.tar.gz解壓:tar zxvf ffmpeg-0.11.1.tar.gz2
環境:CentOS6.2 + Asterisk 1.8.7.1一、添加源檔案複製app_verbose.c為app_testApp.c複製app_verbose.exports為app_testApp.exports主要是修改一些標識,編譯不會出錯就行,這裡列出我進行的主要修改。1、添加標頭檔#include "asterisk/cli.h"2、修改變數static char *app_testApp = "testApp";static char *app_testApplog =
這裡介紹兩種產生sdp檔案的方法,僅供參考,歡迎補充。1、環境作業系統 :CentOS6.2_64核心版本 :2.6.32-220.23.1.el6.x86_64Darwin Streaming Server 版本:6.0.3mpeg4ip版本:1.6.1ffmpeg版本:0.6.52、用mpeg4ip產生sdp檔案這個簡單,安裝好mpeg4ip後,直接運行mp4live就可以了,具體如:3、用ffmpeg 產生sdp檔案命令如下:ffmpeg -f video4linux2 -s 176*14
安裝git : yum install git配置全域:git config --global user.name "MikeZhang"git config --global user.email "Mike_Zhang@live.com"初始化:git init添加本地所有檔案:git add *遞交:git commit -m "git test init"查看日誌:git log檢驗倉庫:git clone user@host:path例如:git clone root@172.16.1
擷取單個檔案行數檔案:test1.sh行數:20方法一awk '{print NR}' test1.sh|tail -n1:方法二awk 'END{print NR}' test1.sh:方法三grep -n "" test1.sh|awk -F: '{print '}|tail -n1:方法四sed -n '$=' test1.sh:方法五wc -l test1.sh:方法六#cat test1.sh |wc
想象一下,當我們寫了個程式,開始是在命令列下啟動並執行程式,後來用MFC之類的改寫為表單程式,原先用printf輸出的trace都不可見了,但是我們又需要(輸出到檔案分析),怎麼辦?1、開始寫的時候你定義一個MyTrace的宏;2、你可以把printf換成fprintf;3、使用輸出重新導向。第一種情況很方便,可程式已經寫出來了,顯然不大可能;第二種情況可以是可以,但勞動量比較大;第三種我覺得可以。還記得不,在windows終端輸入 "dir >
一、複製進程映像1、fork函數介紹 此系統調用主要複製當前進程,在進程表中建立一個新的表項,新表項中的許多屬性與當前進程是相同的。新進程幾乎與原進程一模一樣,執行的代碼也完全相同,但新進程有自己的資料空間、環境和檔案描述符。2、典型使用fork的程式碼片段: pid_t pid;pid = fork();switch(pid){case -1: // error occur perror("fork failed"); exit(1);case 0: // child
有時候從網上copy來的代碼格式不怎麼友好,一行行的改,我實在不樂意。之前在windows下用VS內建的ALT + F8著實爽了一把,當然還有CodeBlocks的astyle……現在linux下我也想這樣,VS是不用想了,astyle倒是可以……1、astyle介紹網址:http://astyle.sourceforge.net/這裡有源碼,自己下載後解壓安裝下就可以了。風格選項:View Code Bracket Style Options: ----------------------
我前面有一篇文章介紹了怎麼擴充Asterisk 1.8.7的CLI介面(http://www.cnblogs.com/MikeZhang/archive/2012/06/05/asterisk187CLIAddOns.html ),這裡說說添加Dialplan
伺服器端配置1、安裝openvpnrpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpmyum install openvpn -y當然也可以從這個頁面下載:http://openvpn.net/index.php/download.html 2、設定管理員2.1 初始化服務端cd /etc/openvpn/cp /usr/share/doc/openvpn-2.
這段時間用到了linux下的ftp,上網搜搜問題解決了。可網上資料有點亂,決定把自己的配置過程記錄下來,也方便我以後查看。一、安裝並測試可用性1、安裝命令yum install vsftpd2、配置防火牆3、佈建服務配置開機啟動啟動服務:/etc/init.d/vsftpd start 4、訪問測試添加檔案並測試:路徑: /var/ftp/echo "Just a test" >
最近在看Asterisk的原始碼,收穫不小,決定記錄下來學習Asterisk過程中的點滴,分享給大家,也方便我以後查閱……今天讓我感到意外的是Asterisk中對結構體初始化(或者說成是賦值)的使用。比如定義結構體如下:typedef struct ST {int a;int b;pFun fun;}ST;一般的初始化是這樣的:ST t2;t2.a=4;t2.b=5;t2.fun=test2;而我在源碼中看到的是這樣的:ST t1 = {.a=1,.b=2,.fun=test1};感覺好強大。。
我之前有一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/04/14/asteriskCLIAppTest20120414.html)介紹過如何擴充asterisk的cli介面,本篇是它的繼續,總結下,也方便我以後查閱。 大部分情況下,配置asterisk的撥號方案,用CLI、AMI之類的就可以滿足我們的需求。可有些情況下涉及到業務的東東,需要資料庫的參與(比如用sqlserve儲存asterisk的錄音記錄等等),撥號方案那種靜態做法完
周末了,也該把上周工作中用到的雕蟲小技整理下,寫成部落格,也方便我以後查閱。最近需要用ffmpeg進行視頻轉碼,考慮到ffmpeg這個工具本身支援多線程,而伺服器也是多核的,想最大程度發揮伺服器的計算能力。顯然不能用單線程了,但是線程並不是越多越好,需要找到個平衡點。這就需要用time命令進行計時,並將該螢幕的輸出重新導向到檔案,以便後期進行分析。ffmpeg編碼的介紹網上有很多,我這裡也有些樣本(http://www.cnblogs.com/MikeZhang/archive/2012/07/
本文定位:已將CPU曆史資料存檔,等待可視化進行分析,可暫時沒有思路。前面一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/02/01/cpuRatePythonTop.html)提到過在linux下如何用python將top命令的結果進行存檔,本文是它的後續。python中我們可以用matplotlib很方便的將資料視覺效果,比如下面的代碼:1 import matplotlib.pyplot as plt2 3 list1 = [1,2,3
適用情境:想錄製或轉播FM調頻電台節目但暫時找不到解決辦法。硬體條件:音效卡: 普通多媒體電腦上配置的音效卡就可以勝任, 包括各種主板整合音效卡。收音機: 普通收音機就能勝任, 只要轉播的調頻電台能夠穩定清晰, 沒有雜音。雙頭音頻連接線: 可以到相關的影音製品商店買到雙頭的音頻線, 但是要注意介面必須同時支援音效卡和收音機耳機介面。音頻雙頭線自己DIY 製作: 把廢棄的兩個耳機線截斷,
今天有個網友問我組合數產生演算法的問題,這個寫的早,忘的都差不多了,只給他回複了原理。剛好這段時間玩“15選5”,知道那個是隨機的,機率問題(中就是中了,沒中就是沒中),沒啥好分析的,可還是忍不住想計算下…… 好,不廢話了,下面開工。 一、原理 藉助二進位計數的機制來進行,比如字串“123”中選出兩個字元,如下計算:1:二進位串為00012:00103:0011 4:0100 5:0101 6:0110 7:0111 8:1000 其中含有兩個1的有 3:0011 5:0101 6:011
1、添加addons_test目錄編寫檔案app_testApp.c和 app_testApp.exports,這裡我只敘述大概過程,具體參考我的博文(http://www.cnblogs.com/MikeZhang/archive/2012/06/05/asterisk187CLIAddOns.html )2、編寫addons_test目錄裡面的Makefile檔案內容如下: -include$(ASTTOPDIR)/menuselect.makeopts
本文適用情境:想用Tkinter開發介面程式並螢幕置中,但沒找到相應的API。這兩天玩了玩Tkinter,感覺不錯,就是螢幕置中這個問題在網上搜了很長時間也沒 找到答案,最後沒辦法,看它的文檔,用自己的方法實現了。方法很土,就是擷取初始化的表單大小和螢幕大小,再通過計算得到大體值。以下是代碼: 1 #! /usr/bin/python 2 ''' 3 File : screenCenter.pyw 4 Author : Mike 5 E-Mail : Mike_