• <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>

            Onway

            我是一只菜菜菜菜鳥...
            posts - 61, comments - 56, trackbacks - 0, articles - 34

            2011-12-17 第十三章 守護(hù)進(jìn)程
            第一節(jié) 引言
            1,守護(hù)進(jìn)程通常沒有控制終端。

            第二節(jié) 守護(hù)進(jìn)程的特征
            1,所有用戶層守護(hù)進(jìn)程都是進(jìn)程組的組長進(jìn)程以及會話的首進(jìn)程,而且是這些進(jìn)程組和會話中的唯一進(jìn)程。
            2,大多數(shù)守護(hù)進(jìn)程的父進(jìn)程是init進(jìn)程。

            第三節(jié) 編程規(guī)則
            1,六個進(jìn)程規(guī)則使一個普通進(jìn)程被正確初始化成一個守護(hù)進(jìn)程。

            第四節(jié) 出錯記錄
            1,對于守護(hù)進(jìn)程,需要一個集中的守護(hù)進(jìn)程出錯記錄設(shè)施。
            2,該設(shè)施的接口是syslog函數(shù)。

            第五節(jié) 單實例守護(hù)進(jìn)程
            1,為了正常運作,某些守護(hù)進(jìn)程實現(xiàn)為單實例的,也就是在任一時刻只運行該守護(hù)進(jìn)程的一個副本。
            2,文件鎖和記錄鎖機制是一種方法的基礎(chǔ),該方法用來保證一個守護(hù)進(jìn)程只有一個副本在運行。

            第六節(jié) 守護(hù)進(jìn)程慣例
            1,如果守護(hù)進(jìn)程使用鎖文件,那么該文件通常存放在/var/run目錄中。
            2,若守護(hù)進(jìn)程支持配置選項,那么配置文件通常存放在/etc目錄中。
            3,守護(hù)進(jìn)程可用命令行啟動,但通常它們是由系統(tǒng)初始化腳本之一啟動的。如果在守護(hù)進(jìn)程終止時,應(yīng)當(dāng)自動重新啟動它,則可在/etc/inittab中為該守護(hù)進(jìn)程包括_respawn記錄項。
            4,為了避免守護(hù)進(jìn)程可能需要停止來重新讀取配置文件,可使守護(hù)進(jìn)程捕捉SIGHUP信號。

            第七節(jié) 客戶進(jìn)程-服務(wù)進(jìn)程模型
            1,守護(hù)進(jìn)程常常用作服務(wù)器進(jìn)程。

            第八節(jié) 小結(jié)

            posted @ 2011-12-18 12:28 Onway 閱讀(249) | 評論 (0)編輯 收藏

                 摘要: 第七節(jié) 取消選項
            1,線程的可取消狀態(tài)和可取消類型這兩個屬性影響著線程在響應(yīng)pthread_cancel函數(shù)調(diào)用時鎖呈現(xiàn)的行為。
            2,可取消類型分為異步取消和延遲取消,使用異步取消時,線程可以在任意時刻取消,而不是非得遇到取消點才能被取消。
            3,當(dāng)線程處于延遲取消類型的情況下,可以調(diào)用pthread_setcancelstate修改它的可取消狀態(tài)。
            4,取消點是線程檢查是否被取消并按照取消請求進(jìn)行動作的一個位置。
            5,當(dāng)可取消狀態(tài)設(shè)置為PTHREAD_CANCEL_DISABLE時,對pthread_cancel的調(diào)用不會殺死進(jìn)程,相反,取消請求對這個線程來說處于未決狀態(tài)。
            6,可以調(diào)用pthread_testcancel函數(shù)在程序中自己添加取消點。
              閱讀全文

            posted @ 2011-12-16 12:41 Onway 閱讀(488) | 評論 (0)編輯 收藏

                 摘要: 第十二 內(nèi)容轉(zhuǎn)載引用自:
            字符集: http://baike.baidu.com/view/51987.htm
            字符編碼:http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html
            ASCII: http://baike.baidu.com/view/15482.htm
            EASCII:http://zh.wikipedia.org/wiki/EASCII
            http://zh.wikipedia.org/wiki/ISO/IEC_8859
            GBxxxx系列,BIG5:
            http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html
            UCS&UNICODE:http://zh.wikipedia.org/wiki/通用字符集
            http://zh.wikipedia.org/wiki/Unicode
            UTF-x系列:http://zh.wikipedia.org/wiki/UTF-8  閱讀全文

            posted @ 2011-12-04 14:39 Onway 閱讀(1619) | 評論 (1)編輯 收藏

                 摘要: 做這些筆記的時候是一年前多了。當(dāng)時還在做著ACM,學(xué)這些似乎只是抱著充實自己的心態(tài),當(dāng)時最想的似乎就是看完整本書,但最終還是在面向?qū)ο蟮牟糠滞O聛砹恕,F(xiàn)在很多東西都忘了,畢竟這樣學(xué)而沒有實際使用,肯定很容易忘的??赡墚?dāng)時也是出現(xiàn)了這么個想法而停下來的吧,至少應(yīng)該是其中一個原因。這份筆記似乎在硬盤里丟失過一次,最后在金山快盤里找回來的。2011-12-4  閱讀全文

            posted @ 2011-12-04 14:12 Onway 閱讀(721) | 評論 (0)編輯 收藏

                 摘要: 第三節(jié)
            1,signal在linux的聲明
            typedef void (*__sighandler_t) (int);
            extern __sighandler_t signal (int __sig, __sighandler_t __handler)
            __THROW;
            2,SIG_ERR,SIG_DFL和SIG_IGN的定義
            #define SIG_ERR ((__sighandler_t) -1) /* Error return. */
            #define SIG_DFL ((__sighandler_t) 0) /* Default action. */
            #define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */

            懷疑書上有錯:
            ”如果查看系統(tǒng)的頭文件,則很可能會找到下列形式的聲明:
            #define SIG_ERR (void (*)())-1
            #define SIG_DFL (vo  閱讀全文

            posted @ 2011-12-04 13:48 Onway 閱讀(423) | 評論 (0)編輯 收藏

            一,使用數(shù)據(jù)空間:
            環(huán)境:
            宿主機:ubuntu
            步驟:
            1,進(jìn)入虛擬機系統(tǒng)(將虛擬機開機),選擇:設(shè)備->安裝增強功能
            (最好先在網(wǎng)上下載一個VBoxGuestAdditions.iso的增強功能文件,放到宿主機的/usr/share/virtualbox目錄下)
            2,安裝完后就將虛擬機關(guān)機了,選擇:控制->設(shè)置->數(shù)據(jù)空間,彈出的界面右側(cè)有一個帶加號的文件夾圖標(biāo),鼠標(biāo)移動過去有提示,添加數(shù)據(jù)空間。
            3,彈出的“添加數(shù)據(jù)空間”界面里,數(shù)據(jù)空間位置選擇一個在宿主機上的文件夾,數(shù)據(jù)空間名稱隨便,例如sharedata。選上底下的auto-mount,是否只讀,你喜歡。
            4,確定后開機就行了。
            數(shù)據(jù)空間在虛擬機的位置是/media/sf_數(shù)據(jù)空間名稱,如果是XP的虛擬機,則可以看到一個額外的盤符。
            5,注意在虛擬機(linux)中虛擬空間文件夾是所有者是root,所屬組是vboxsf,這意味著一般用戶是不能訪問的,將你的賬戶添加到其所屬組吧。
            具體參見用戶手冊,Guest Additions->Shared folders章節(jié)。


            二,修正虛擬機的屏幕大小:
            XP直接調(diào)整分辨率
            ubuntu還沒試成功


            三,導(dǎo)入導(dǎo)出虛擬電腦:
            按照向?qū)Р僮骷纯?。問題是:虛擬電腦上的驅(qū)動會不會因為兩臺宿主機硬件的不同而出問題。應(yīng)該不會吧,硬件都是虛擬出來的。
            因為導(dǎo)入的XP進(jìn)不了系統(tǒng),總是自動重啟,導(dǎo)入的ubuntu屏幕大小太大(原虛擬機是在19寸的臺式電腦,導(dǎo)入到14寸的筆記本),以為驅(qū)動出了問題。
            后來重裝XP才發(fā)現(xiàn),裝完后藍(lán)屏(原來導(dǎo)入的XP可能也是這個問題而進(jìn)不了系統(tǒng)),按照網(wǎng)上教程搞好后,還是要自行調(diào)整分辨率。
            所以覺得導(dǎo)入導(dǎo)出虛擬電腦,應(yīng)該不用擔(dān)心驅(qū)動問題。



            四,宿主機和虛擬機通信并且虛擬機能夠上網(wǎng)
            宿主機:ubuntu 11.10 使用adsl撥號上網(wǎng)
            虛擬機:centos 6.0

            1,宿主機使用ifconfig可以查看到有三個網(wǎng)絡(luò)接口:eth0,lo,ppp0,其中eth0是沒有地址的。
            2,宿主機編輯/etc/network/interfaces,修改
            auto eth0
            iface eth0 inet static
            address 192.168.1.1
            network 192.168.1.0
            netmask 255.255.255.0
            broadcast 192.168.1.255
            然后重啟網(wǎng)絡(luò):
            sudo /etc/init.d/networking restart
            3,virtualbox在虛擬機中虛擬兩個網(wǎng)卡,一個使用NAT,一個使用Bridged Adapter
            4,虛擬機中編輯/etc/sysconfig/eth0
            DEVICE=eth0
            ONBOOT=yes
            BOOTPROT=dhcp
            NAME=net    //不知道這個是做什么的
            HWADDR=        //必須的,對照virtualbox中使用NAT方式的網(wǎng)卡MAC地址
            5,虛擬機中編輯/etc/sysconfig/network-scripts/ifcfg-eth1
            DEVICE=eth1
            ONBOOT=yes
            BOOTPROT=static
            IPADDR=192.168.1.2
            NETMASK=255.255.255.0
            NAME=bridge
            TYPE=Ethernet
            HWADDR=        //必須的,對照virtualbox中使用bridged adapter的網(wǎng)卡mac地址
            6,添加網(wǎng)絡(luò)管理服務(wù):
            chkconfig NetworkManager on    
            chkconfig network on
            service network restart        //重啟網(wǎng)絡(luò)

            posted @ 2011-11-22 15:58 Onway 閱讀(510) | 評論 (0)編輯 收藏

            /*
             * http.c by Onway 2011-11-14
             * 1,間隔1秒的兩次connect避免瞬間造成的錯誤
             * 2,網(wǎng)絡(luò)讀寫超時限制參考自《UNIX環(huán)境高級編程》第二版中文版程序清單10-8,
             * 由于程序是單線程,避免進(jìn)程堵塞。
             * 3,返回值說明
             *     0 正確返回
             *     1 網(wǎng)絡(luò)連接失敗
             *     2 網(wǎng)絡(luò)IO超時
             *     3 時鐘注冊失敗
             
            */
            #include 
            "global.h"
            #include 
            <sys/types.h>
            #include 
            <sys/socket.h>
            #include 
            <netinet/in.h>
            #include 
            <arpa/inet.h>
            #include 
            <unistd.h>
            #include 
            <stdlib.h>
            #include 
            <setjmp.h>

            #define PORT 80 
            #define BUFFSIZE 10086

            static void sig_alrm(int);
            static jmp_buf env_alrm;

            int QueryWord(const GString *word,const GString *ip,
                    GString 
            *gstrHtml)
            {
                g_string_erase(gstrHtml,
            0,-1);

                
            /*    http 請求    */
                GString 
            *request = g_string_new("GET /search?q=");
                g_string_append(request,word
            ->str);
                g_string_append(request,
            "\
            &ue=utf8&keyfrom=dict.index HTTP/1.1\r\n\
            Host: dict.youdao.com\r\n\
            Connection: close\r\n\
            \r\n
            ");

                
            /*    網(wǎng)絡(luò)地址    */
                
            struct sockaddr_in address;
                address.sin_family 
            = AF_INET;
                address.sin_addr.s_addr 
            = inet_addr(ip->str);
                address.sin_port 
            = htons(PORT);

                
            /*    網(wǎng)絡(luò)連接    */
                
            int socketfd = socket(AF_INET,SOCK_STREAM,0);
                
            if(connect(socketfd,(struct sockaddr *)&address,sizeof(address)) != 0)
                {
                    sleep(
            1);
                    
            if(connect(socketfd,(struct sockaddr *)&address,sizeof(address)) != 0)
                    {

                        g_string_free(request,TRUE);
                        
            return 1;
                    }
                }
                
                
            /*    信號注冊    */
                
            if(signal(SIGALRM,sig_alrm) == SIG_ERR)
                {
                    g_string_free(request,TRUE);
                    close(socketfd);
                    
            return 3;
                }
                
            if(setjmp(env_alrm) != 0)
                {
                    g_string_free(request,TRUE);
                    close(socketfd);
                    
            return 2;
                }
                
                
            /*    網(wǎng)絡(luò)IO    */
                alarm(
            3);
                write(socketfd,request
            ->str,request->len);

                
            char buf[BUFFSIZE];
                
            int n;
                
            while( (n = read(socketfd,buf,BUFFSIZE)) > 0 )
                    g_string_append_len(gstrHtml,buf,n);
                alarm(
            0);

                
            /*    正常返回    */
                g_string_free(request,TRUE);
                close(socketfd);
                
            return 0;
            }
            static void sig_alrm(int signo)
            {
                longjmp(env_alrm,
            1);
            }

            posted @ 2011-11-22 11:55 Onway 閱讀(656) | 評論 (0)編輯 收藏

                 摘要: 1,帶有滾動條的多行文本框
            只要gtk_scrolled_window_new生成一個滾動窗口,在其上加上textview控件即可gtk_container_add,特點是當(dāng)textview足夠顯示的時候,滾動條不可見,否則自動產(chǎn)生(垂直和橫向),而且也隨著輸入一起下滾顯示。這個暫不知道怎么設(shè)置。
            GtkWidget *scroll = gtk_scrolled_window_new(NULL,NULL);
            GtkWidget *textview = gtk_text_view_new();
            gtk_container_add(GTK_CONTAINER(scroll),textview);

            textview總是要與一個textbuffer關(guān)聯(lián):
            GtkTextBuffer *buffer = gtk_text_buffer_new(NULL);
            buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));


            2,控件焦點設(shè)置
            g  閱讀全文

            posted @ 2011-11-22 11:47 Onway 閱讀(1451) | 評論 (0)編輯 收藏

                 摘要: 由于UBUNTU裝了唯一的主分區(qū),且無論如何也不能覆蓋掉,里面保存了我一個多月的心血,只能在40G的數(shù)據(jù)備份分區(qū)里分出20G的邏輯分區(qū)給WIN7,當(dāng)然最擔(dān)心的是WIN7會改寫引導(dǎo)記錄,自己也毫無經(jīng)驗。百度了一會,發(fā)現(xiàn)都是說先裝的WIN7,決定還是先把WIN7搞上去吧。

            放入WIN7的系統(tǒng)盤,在選擇安裝分區(qū)的時候,給個20G的邏輯分區(qū)給WIN7,丫的死活不要,說是啟動程序無法創(chuàng)建新的分區(qū),也無法定位現(xiàn)有系統(tǒng)分區(qū)。

            又百度去,有說WIN7能裝在邏輯分區(qū),也有說不能的,還有說這個情況是設(shè)置了光驅(qū)第一啟動,哥還真傻冒的讓硬盤第一啟動,然后光驅(qū)放入系統(tǒng)盤,這下直奔UBUNTU去了。  閱讀全文

            posted @ 2011-11-22 11:17 Onway 閱讀(3160) | 評論 (3)編輯 收藏

                 摘要: xp下用ISO文件安裝ubuntu(該方法網(wǎng)上已有,但與自己實踐的稍有差別,特此紀(jì)念)
            注意:網(wǎng)上的方法似乎是從9.04開始,我用的版本直接就是10.04.1 desktop i386。
            二:
            將單系統(tǒng)的ubuntu裝回windows
            我這不是閑著沒事做,而是確實需要。
            四:
            情人節(jié)網(wǎng)絡(luò)詭異  閱讀全文

            posted @ 2011-11-22 11:10 Onway 閱讀(319) | 評論 (0)編輯 收藏

            僅列出標(biāo)題
            共6頁: 1 2 3 4 5 6 
            国产精品久久精品| 久久人妻少妇嫩草AV无码蜜桃| 亚洲精品美女久久久久99小说| 午夜久久久久久禁播电影| 91精品久久久久久无码| 久久不见久久见免费视频7| 少妇久久久久久被弄到高潮| 国内精品人妻无码久久久影院| 亚洲国产精品无码久久青草| 久久亚洲AV成人无码国产| 国产精品99久久久精品无码| 久久精品人妻一区二区三区| 久久婷婷国产麻豆91天堂| 久久精品国产亚洲av水果派| 9191精品国产免费久久| 午夜不卡久久精品无码免费| 精品国产综合区久久久久久| 成人国内精品久久久久影院VR| 国产69精品久久久久777| 亚洲AV伊人久久青青草原| 狠狠色丁香久久综合婷婷| 午夜不卡888久久| 老色鬼久久亚洲AV综合| 精品多毛少妇人妻AV免费久久| 麻豆精品久久久久久久99蜜桃| 日韩va亚洲va欧美va久久| 91精品国产综合久久四虎久久无码一级 | 亚洲AV乱码久久精品蜜桃| 久久久久国色AV免费看图片| 久久国产高潮流白浆免费观看| 合区精品久久久中文字幕一区| 色偷偷888欧美精品久久久| 国产综合久久久久| 国产精品99久久精品| 久久久久久免费一区二区三区 | 国产激情久久久久影院| 丰满少妇人妻久久久久久| 91视频国产91久久久| 久久国产精品国产自线拍免费| 国产欧美久久一区二区| 久久91精品久久91综合|