• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            vi / vim

            為什么這些死腦筋們在用 VI ?

            http://www.oschina.net/news/25882/why-they-are-using-vi?from=20120226
            看起來是個好文章,不過現(xiàn)在我還不適合看,記下來以后看

            手冊
            http://vimcdoc.sourceforge.net/doc/usr_01.html

            posted @ 2012-04-18 15:40 多彩人生 閱讀(259) | 評論 (0)編輯 收藏

            there are stopped jobs

            Dealing with Stopped Jobs
            Sometimes when you try to logout, you'll get a message saying there are "stopped jobs". These stopped jobs are programs or processes which have been suspended by a ^Z (Ctrl - Z) command. You have to either make the job active again, or get it running properly in the "background" before you can logout.

            Stopping a program is useful if you want to temporarily suspend working on one program so you can do something else.

            To see a list of stopped jobs, type:

            jobs

            You will see a list of the stopped programs. Here's an example showing a stopped "learn" session:

            [1] + Stopped learn


            You can kill this stopped job by typing:

            kill %1 (where %1 is the number of the job
            to be killed>


            Or you can make the program active again by typing:

            fg %1 (where %1 is the number of the job)


            fg stands for foreground. (You are bringing the program from suspended status back to the foreground.) Once brought back to the foreground, you can continue the program or quit in a normal manner.

            posted @ 2012-04-18 14:57 多彩人生 閱讀(537) | 評論 (0)編輯 收藏

            linux command

            查看當(dāng)前路徑: pwd

            posted @ 2012-04-18 10:57 多彩人生 閱讀(268) | 評論 (0)編輯 收藏

            fcitx

            輸入法切換用ctrl+shift

            Ubuntu自帶的輸入法不太盡如人意思,用起來也不方便,我在Ubuntu和FC中都是用Fcitx,很好用!

            安裝配置如下:

            1. 安裝 fcitx

              sudo apt-get install fcitx

             

            2. 配置默認(rèn)輸入法為 fcitx

              im-switch -s fcitx  // 注意無須加 sudo


            3. 重啟 x-window

              重啟之后,fcitx 輸入法應(yīng)當(dāng)正常啟動,輸入條將顯示在屏幕最上面,不過輸入框中文顯示可能是 “口口”,需要小小的改動。

             

            4. 修改配置文件

              gedit ~/.fcitx/config

              //如果沒有配置gedit 支持GB18030編碼,打開后文件會是亂碼(此處針對9.10前版本,9.10無需配置已支持)

              修改如下幾項:

              顯示字體(中)=YaHei Consolas Hybrid   //主要是看你的OpenOffice中有什么字體,加進(jìn)來就行

              Enter鍵行為=1 # =1表示回車時清除輸入框中輸入的內(nèi)容,隨個人喜好設(shè)置

              上一頁=, # 使用 , . 翻頁,隨個人喜好設(shè)置

              下一頁=.

              [輸入法]

              使用拼音=0

              拼音名稱=智能拼音

              使用雙拼=0

              雙拼名稱=智能雙拼

              默認(rèn)雙拼方案=自然碼

              使用區(qū)位=0

              區(qū)位名稱=區(qū)位

              使用碼表=1

              提示詞庫中的詞組=1

              其他輸入法=

            5. 修改碼表文件

              sudo gedit /usr/share/fcitx/data/tables.conf

              由于五筆拼音已經(jīng)完全夠用,其它輸入法就沒必要出現(xiàn)了,文件中只需留下如下內(nèi)容,其它配置段可以清除或注釋掉。

              [碼表]

              名稱=五筆拼音

              碼表=wbpy.mb

              調(diào)頻=2

              拼音=1

              拼音鍵=z

              自動上屏=-1

              空碼自動上屏=-1
              自動詞組=1
              精確匹配=0
              提示編碼=0
            6、重啟 x-window
              重啟 x-window 之后,小企鵝輸入法中文顯示將完全正常,且只有“五筆拼音”,免去了在多個輸入法中來回切換的麻煩。

             

            Note: Restart 后小企鵝面板不是最上面,我們也以用[Ctrl+Alt+h]來把它調(diào)上來。

            posted @ 2012-04-17 20:12 多彩人生 閱讀(786) | 評論 (0)編輯 收藏

            ubuntu gcc g++ make

            sudo apt-get install make gcc g++
            再裝上函數(shù)手冊
            sudo apt-get install manpages-dev

            另一方法:
            sudo apt-get install build-essential
            執(zhí)行完后,完成了gcc,g++,make的安裝。
            build-essential 是一整套工具,gcc,libc等等

            函數(shù)手冊的使用:
            是的,比如man scanf。
            偶爾會有同名的,比如printf就有兩個,一個在腳本下用,一個在c里面用,可以用
            代碼:
            man -a printf

            這樣會顯示出第一個,按q退出后接著顯示第二個。
            當(dāng)然,如果你知道你要查的幫助屬于哪一類的話也可以直接加類別號,如:
            代碼:
            man 1 printf
            man 3 printf

            第一個顯示的就是腳本下用的printf,第二個顯示的是c的。
            編譯運行:
            安裝好后必要的工具后,運行
            代碼:
            gcc xxx.c

            運行編譯好的程序,用
            代碼:
            ./xxx.out

            gcc有很多參數(shù),可以看看
            代碼:
            gcc --help


            代碼:
            man gcc
            或:
            $chmod +x a.out
            $./a.out


            用gcc的話加-lstdc++參數(shù)

            posted @ 2012-04-17 20:10 多彩人生 閱讀(1603) | 評論 (0)編輯 收藏

            extern c

            時常在cpp的代碼之中看到這樣的代碼:

            #ifdef __cplusplus
            extern "C" {
            #endif

            //一段代碼

            #ifdef __cplusplus
            }
            #endif

              這樣的代碼到底是什么意思呢?首先,__cplusplus是cpp中的自定義宏,那么定義了這個宏的話表示這是一段cpp的代碼,也就是說,上面的代碼的含義是:如果這是一段cpp的代碼,那么加入extern "C"{和}處理其中的代碼。

              要明白為何使用extern "C",還得從cpp中對函數(shù)的重載處理開始說起。在c++中,為了支持重載機制,在編譯生成的匯編碼中,要對函數(shù)的名字進(jìn)行一些處理,加入比如函數(shù)的返 回類型等等.而在C中,只是簡單的函數(shù)名字而已,不會加入其他的信息.也就是說:C++和C對產(chǎn)生的函數(shù)名字的處理是不一樣的.

              比如下面的一段簡單的函數(shù),我們看看加入和不加入extern "C"產(chǎn)生的匯編代碼都有哪些變化:

            int f(void)
            {
            return 1;
            }

              在加入extern "C"的時候產(chǎn)生的匯編代碼是:

            .file "test.cxx"
            .text
            .align 2
            .globl _f
            .def _f; .scl 2; .type 32; .endef
            _f:
            pushl %ebp
            movl %esp, %ebp
            movl $1, %eax
            popl %ebp
            ret

              但是不加入了extern "C"之后

            .file "test.cxx"
            .text
            .align 2
            .globl __Z1fv
            .def __Z1fv; .scl 2; .type 32; .endef
            __Z1fv:
            pushl %ebp
            movl %esp, %ebp
            movl $1, %eax
            popl %ebp
            ret

              兩段匯編代碼同樣都是使用gcc -S命令產(chǎn)生的,所有的地方都是一樣的,唯獨是產(chǎn)生的函數(shù)名,一個是_f,一個是__Z1fv。

              明白了加入與不加入extern "C"之后對函數(shù)名稱產(chǎn)生的影響,我們繼續(xù)我們的討論:為什么需要使用extern "C"呢?C++之父在設(shè)計C++之時,考慮到當(dāng)時已經(jīng)存在了大量的C代碼,為了支持原來的C代碼和已經(jīng)寫好C庫,需要在C++中盡可能的支持C,而 extern "C"就是其中的一個策略。

              試想這樣的情況:一個庫文件已經(jīng)用C寫好了而且運行得很良好,這個時候我們需要使用這個庫文件,但是我們需要使用C++來寫這個新的代碼。如果這個代 碼使用的是C++的方式鏈接這個C庫文件的話,那么就會出現(xiàn)鏈接錯誤.我們來看一段代碼:首先,我們使用C的處理方式來寫一個函數(shù),也就是說假設(shè)這個函數(shù) 當(dāng)時是用C寫成的:

            //f1.c
            extern "C"
            {
            void f1()
            {
            return;
            }
            }

              編譯命令是:gcc -c f1.c -o f1.o 產(chǎn)生了一個叫f1.o的庫文件。再寫一段代碼調(diào)用這個f1函數(shù):

            // test.cxx
            //這個extern表示f1函數(shù)在別的地方定義,這樣可以通過
            //編譯,但是鏈接的時候還是需要
            //鏈接上原來的庫文件.
            extern void f1();

            int main()
            {
            f1();

            return 0;
            }

              通過gcc -c test.cxx -o test.o 產(chǎn)生一個叫test.o的文件。然后,我們使用gcc test.o f1.o來鏈接兩個文件,可是出錯了,錯誤的提示是:

            test.o(.text + 0x1f):test.cxx: undefine reference to 'f1()'
              也就是說,在編譯test.cxx的時候編譯器是使用C++的方式來處理f1()函數(shù)的,但是實際上鏈接的庫文件卻是用C的方式來處理函數(shù)的,所以就會出現(xiàn)鏈接過不去的錯誤:因為鏈接器找不到函數(shù)。

              因此,為了在C++代碼中調(diào)用用C寫成的庫文件,就需要用extern "C"來告訴編譯器:這是一個用C寫成的庫文件,請用C的方式來鏈接它們。

              比如,現(xiàn)在我們有了一個C庫文件,它的頭文件是f.h,產(chǎn)生的lib文件是f.lib,那么我們?nèi)绻贑++中使用這個庫文件,我們需要這樣寫:

            extern "C"
            {
            #include "f.h"
            }

              回到上面的問題,如果要改正鏈接錯誤,我們需要這樣子改寫test.cxx:

            extern "C"
            {
            extern void f1();
            }

            int main()
            {
            f1();

            return 0;
            }

              重新編譯并且鏈接就可以過去了.

              總結(jié)


              C和C++對函數(shù)的處理方式是不同的.extern "C"是使C++能夠調(diào)用C寫作的庫文件的一個手段,如果要對編譯器提示使用C的方式來處理函數(shù)的話,那么就要使用extern "C"來說明

            posted @ 2012-04-17 19:12 多彩人生 閱讀(233) | 評論 (0)編輯 收藏

            string

            stl string 里沒有format
            可用 stringstream   來格式化你要的東西。

            http://www.cnblogs.com/lzjsky/archive/2011/01/04/1925538.html

            輸入輸出的頭文件 <iostream>
            string流的頭文件 <sstream>
            文件流的頭文件   <fstream>

            stringstream的用法

            1.利用輸入輸出做數(shù)據(jù)轉(zhuǎn)換

            stringstream ss_stream;
            ss_stream << i; // 將int輸入流中
            ss_stream >> str; // 將ss_stream中的數(shù)值輸出到str中

            //注意:如果做多次數(shù)據(jù)轉(zhuǎn)換;必須調(diào)用clear()來設(shè)置轉(zhuǎn)換模式
            ss_stream << "456";
            ss_stream >> i; // 首先將字符串轉(zhuǎn)換為int
            ss_stream.clear();
            ss_stream << true;
            ss_stream >> i; // 然后將bool型轉(zhuǎn)換為int;假如之前沒有做clear,那么i會出錯

            //運行clear的結(jié)果
            i = 456
            i = 1
            //沒有運行clear的結(jié)果
            i = 456
            i = 8800090900

             

             

            2.支持char*的輸入和輸出

            char sz_buf[20];
            ss_stream << 8888;
            ss_stream >> sz_buf; // 直接將數(shù)輸出到sz_buf字符數(shù)組中

             

            3.來存儲可變數(shù)據(jù)的列表

            stringstream ss_stream;
            ss_stream << "字符串一" << endl;
            ss_stream << "字符串二" << endl;
            ss_stream << "字符串三" << endl;
            ss_stream << "字符串四" << endl;
            ss_stream << "字符串五" << endl;

            char buffer[100];
            while ( ss_stream.getline(buffer, sizeof(buffer))
            {
            printf("msg=%s\n", buffer);
            }
            ss_stream("");// 釋放字符串流中的資源

            // 或者用string來接收
            stringstream ss_stream;
            string stemp;
            while ( getline(ss_stream, stemp) )
            {
            task_download(stemp.c_str(), relate.c_str());
            }

            posted @ 2012-04-16 17:14 多彩人生 閱讀(163) | 評論 (0)編輯 收藏

            time

            函數(shù)簡介
             函數(shù)名: time
            頭文件:time.h
            函數(shù)原型:time_t time(time_t * timer)
            功 能: [1]獲取當(dāng)前的系統(tǒng)時間,返回的結(jié)果是一個time_t類型,其實就是一個大整數(shù),其值表示從UTC(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX系統(tǒng)的Epoch時間)
            到當(dāng)前時刻的秒數(shù)。然后調(diào)用localtime將time_t所表示的UTC時間轉(zhuǎn)換為本地時間(我們是+8區(qū),比UTC多8個小時)并轉(zhuǎn)成struct tm類型,該類型的各數(shù)據(jù)成員分別表示年月日時分秒。
            補充說明:time函數(shù)的原型也可以理解為 long time(long *tloc),
            因為在time.h這個頭文件中time_t實際上就是:
             #ifndef _TIME_T_DEFINED
            typedef long time_t; /* time value */
            #define _TIME_T_DEFINED /* avoid multiple def's of time_t */
            #endif
            即long。
            函數(shù)應(yīng)用舉例
            程序例1: time函數(shù)獲得日歷時間。日歷時間,是用“從一個標(biāo)準(zhǔn)時間點到此時的時間經(jīng)過的秒數(shù)”來表示的時間。
            這個標(biāo)準(zhǔn)時間點對不同的編譯器來說會有所不同,但對一個編譯系統(tǒng)來說,
            這個標(biāo)準(zhǔn)時間點是不變的,該編譯系統(tǒng)中的時間對應(yīng)的日歷時間都通過該標(biāo)準(zhǔn)時間點來衡量,所以可以說日歷時間是“相對時間”,
            但是無論你在哪一個時區(qū),在同一時刻對同一個標(biāo)準(zhǔn)時間點來說,日歷時間都是一樣的。
            #include <time.h>
            #include <stdio.h>
            #include <dos.h>
             int main(void)
            {
             time_t t;
            t = time(NULL);
            printf("The number of seconds since January 1, 1970 is %ld",t);
             return 0;
            }
            程序例2:
             //time函數(shù)也常用于隨機數(shù)的生成,用日歷時間作為種子。
            #include <stdio.h>
             #include <time.h>
             #include<stdlib.h>
             int main(void)
            {
             int i;
             srand((unsigned) time(NULL));
             printf("ten random numbers from 0 to 99\n\n");
             for(i=0;i<10;i++)
             {
             printf("%d\n",rand()%100);
             }
             return 0;
            }
            程序例3:
            用time()函數(shù)結(jié)合其他函數(shù)(如:localtime、gmtime、asctime、ctime)可以獲得當(dāng)前系統(tǒng)時間或是標(biāo)準(zhǔn)時間。
            #include <stdio.h>
             #include <stddef.h>
             #include <time.h>
             int main(void)
            {
             time_t timer;//time_t就是long int 類型
            struct tm *tblock;
            timer = time(NULL);//這一句也可以改成time(&timer);
            tblock = localtime(&timer);
            printf("Local time is: %s\n",asctime(tblock));
             return 0;
             }

            posted @ 2012-04-15 23:45 多彩人生 閱讀(239) | 評論 (0)編輯 收藏

            vmware

            Failed to initialize remote display subsystem【VMware】
            錯誤:
            啟動虛擬機后彈出“Failed to initialize remote display subsystem”錯誤提示,點擊確定后虛擬機中的操作系統(tǒng)關(guān)閉,無論如何也無法啟動。

            原因:
            虛擬機在安裝時自動添加了一個“__vmware_user__”帳戶,不小心刪掉這個帳戶后虛擬機中的操作系統(tǒng)就會啟動失敗。

            解決:
            進(jìn)入DOS命令窗口,輸入“net user __vmware_user__  /add”命令添加這個虛擬機帳戶即可。

            posted @ 2012-04-13 19:37 多彩人生 閱讀(269) | 評論 (0)編輯 收藏

            shared_ptr

            //null-pointer-with-boostshared-ptr
            http://stackoverflow.com/questions/621220/null-pointer-with-boostshared-ptr

            shared_from_this 幾個值得注意的地方
            http://www.cnblogs.com/lzjsky/archive/2011/09/09/2172469.html

            posted @ 2012-04-07 15:45 多彩人生 閱讀(208) | 評論 (0)編輯 收藏

            僅列出標(biāo)題
            共25頁: First 17 18 19 20 21 22 23 24 25 

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久人与动人物a级毛片| 国产精品美女久久久网AV| 午夜精品久久久内射近拍高清 | 亚洲精品无码久久不卡| 久久精品aⅴ无码中文字字幕重口| 亚洲愉拍99热成人精品热久久| 91精品久久久久久无码| 2021国产精品久久精品| 久久久久国产精品| 久久精品日日躁夜夜躁欧美| 麻豆精品久久精品色综合| yy6080久久| 久久国产成人亚洲精品影院| 色偷偷偷久久伊人大杳蕉| 久久久99精品成人片中文字幕| 久久久久亚洲av无码专区| 亚洲?V乱码久久精品蜜桃| 国产成人99久久亚洲综合精品 | 精品国产91久久久久久久| 色综合久久中文字幕无码| 99精品国产综合久久久久五月天 | 久久天天躁狠狠躁夜夜2020一| 91久久福利国产成人精品| 久久精品国产亚洲精品2020| 久久毛片一区二区| 无码8090精品久久一区| 老司机国内精品久久久久| 国产成人精品久久免费动漫| 久久精品一区二区三区AV| 国内精品久久国产| 91麻豆国产精品91久久久| 伊人久久大香线蕉综合网站| 久久亚洲欧洲国产综合| 久久久久国产精品嫩草影院| 精品综合久久久久久88小说 | 精品久久久久久久久久久久久久久| 国产成人久久精品一区二区三区 | 色噜噜狠狠先锋影音久久| AV色综合久久天堂AV色综合在| 久久久噜噜噜久久熟女AA片| 久久水蜜桃亚洲av无码精品麻豆|