操作系統(tǒng)實習報告_第1頁
操作系統(tǒng)實習報告_第2頁
操作系統(tǒng)實習報告_第3頁
操作系統(tǒng)實習報告_第4頁
操作系統(tǒng)實習報告_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

操作系統(tǒng)實習匯報學生姓名:劉世班級:物聯(lián)網(wǎng)151班專業(yè):計算機科學與技術(shù)系別:計算機系學院:信息工程學院指導教師:宋洪軍年12月10日操作系統(tǒng)實習匯報正文格式1.遠程登錄服務(wù)器的設(shè)置一、設(shè)計目的掌握遠程登錄Telnet、SSH服務(wù)器的配置措施。。二、設(shè)計內(nèi)容及規(guī)定1、下載對應(yīng)版本的telnet服務(wù)器rpm包2、安裝telnet服務(wù)器;3、配置telnet服務(wù)器;4、打開Telnet服務(wù);5、容許root使用Telnet登錄;6、啟動Telnet服務(wù)器;7、使用telnet;8、安裝和配置openssh;9、使用SSH客戶端;10、OpenSSH常用命令練習;三、設(shè)計算法及流程1.Telnet(1)使用如下命令檢查與否安裝了Telnet服務(wù)器程序:#rpm–qatelnet-server(2)若沒有光盤,從網(wǎng)上下載對應(yīng)版本的ipm包。通過U盤掛載將程序復制到/root/下。(3)使用如下命令安裝Telnet服務(wù)器程序:

#rpm–ivh/root/telnet-server-0.17-47.el6_3.1.i686.rpm。(4)使用如下命令打開/etc/xinetd.d/telnet文獻#vi/etc/xinetd.d/telnet將配置文獻中的disable=yes修改為disable=no,保留退出。(5)需要設(shè)置Telnet服務(wù)器只容許上班時間進行登錄,且登錄的客戶端只能是本網(wǎng)段內(nèi)的主機(即—55),則可使用如下命令打開/etc/xinetd.d/telnet文獻,修改配置文獻。(6)Telnet服務(wù)使用的默認端口是23,若不使用該端口,可在/etc/services中進行修改。#vi/etc/services(7)在/etc/目錄中有一種securetty文獻,該文獻可控制root顧客登錄的設(shè)備。該文獻是記錄的是可以作為root顧客登錄的設(shè)備名,如tty1、tty2等。若要root顧客通過Telnet登錄到服務(wù)器,最簡樸的措施是刪除securetty文獻,使用如下命令將該文獻重命名也可以到達同樣的目的。#mv/etc/securetty/etc/securetty.bak(8)通過前面的環(huán)節(jié)設(shè)置好Telnet的配置文獻后,使用如下命令重啟xinetd守護進程,可將Telnet服務(wù)啟動。#servicexinetdrestart(9)在LInux中使用如下命令登錄到Telnet服務(wù)器:#telnet49(10)使用Windows也可迅速通過Telnet登錄到Linux服務(wù)器,詳細過程如下:在Windows的命令窗口輸入如下命令登錄到服務(wù)器

telnet49連接到服務(wù)器后,將提醒顧客輸入顧客名和密碼登錄成功后,即可在Windows中操作遠程Linux服務(wù)器了。客戶端程序連接到Telnet服務(wù)器后,將提醒顧客名和密碼,進行登錄操作。2.Openssh(1)使用如下命令檢查與否安裝OpenSSH服務(wù)器程序。#rpm-qaopenssh-server(2)OpenSSH服務(wù)器程序包括在RHEL6.4的安裝光盤中,使用mount將光驅(qū)掛載到文獻系統(tǒng)。若沒有光盤,可從網(wǎng)上下載。(3)使用如下命令安裝OpenSSH服務(wù)器程序:#rpm-ivh/mnt/cdrom/Packages/openssh-server-5.3p1-84.1.el6.i686.rpm安裝完畢后,OpenSSH服務(wù)器程序的守護進程為sshd。通過該守護進程就可啟動、重啟或停止OpenSSH服務(wù)器程序。(4)啟動/停止OpenSSH設(shè)置好OpenSSH配置文獻后,就可啟動OPenSSH服務(wù)程序。手工啟動的命令如下:

#servicesshdstart(5)Linux客戶端使用SSH登錄可通過兩種方式來登錄SSH服務(wù)器。通過密碼方式登錄SSH的過程為:在客戶機中使用如下命令連接到遠程SSH服務(wù)器:#ssh493.scp(1)將當?shù)赜嬎銠C中名為upfile.txt的文獻復制到遠程服務(wù)器中,放于root顧客的Home目錄中,詳細操作命令如下:#scpupfile.txt.0.1:目錄(2)若只是查看遠程服務(wù)器中root目錄中的文獻列表,詳細命令如下:#sshls-l4.sftp(1)在當?shù)赜嬎銠C中輸入如下命令,登錄到遠程服務(wù)器:#sftp.0.1執(zhí)行以上命令,將規(guī)定顧客輸入密碼。(2)與使用ftp同樣,可使用ls命令查看目前目錄中的文獻。(3)接下來使用put命令將當?shù)赜嬎銠C中的文獻upfile.txt上傳到服務(wù)器。(4)使用ls命令查看文獻與否上傳成功。(5)操作完畢后,輸入bye命令,退出sftp即可。四、程序運行成果分析telnetsshscpSftp五、程序源代碼及注釋使用如下命令檢查與否安裝了Telnet服務(wù)器程序:#rpm–qatelnet-server使用如下命令安裝Telnet服務(wù)器程序:

#rpm–ivh/root/telnet-server-0.17-47.el6_3.1.i686.rpm。使用如下命令打開/etc/xinetd.d/telnet文獻#vi/etc/xinetd.d/telnetTelnet服務(wù)使用的默認端口是23,若不使用該端口,可在/etc/services中進行修改。#vi/etc/services刪除securetty文獻,使用如下命令將該文獻重命名也可以到達同樣的目的。#mv/etc/securetty/etc/securetty.bak通過前面的環(huán)節(jié)設(shè)置好Telnet的配置文獻后,使用如下命令重啟xinetd守護進程,可將Telnet服務(wù)啟動。#servicexinetdrestart在LInux中使用如下命令登錄到Telnet服務(wù)器:#telnet49使用如下命令檢查與否安裝OpenSSH服務(wù)器程序。#rpm-qaopenssh-server使用如下命令安裝OpenSSH服務(wù)器程序:#rpm-ivh/mnt/cdrom/Packages/openssh-server-5.3p1-84.1.el6.i686.rpm設(shè)置好OpenSSH配置文獻后,就可啟動OPenSSH服務(wù)程序#servicesshdstartLinux客戶端使用SSH登錄#ssh49將當?shù)赜嬎銠C中名為upfile.txt的文獻復制到遠程服務(wù)器中,放于root顧客的Home目錄中,詳細操作命令如下:#scpupfile.txt.0.1:目錄若只是查看遠程服務(wù)器中root目錄中的文獻列表,詳細命令如下:#sshls-l在當?shù)赜嬎銠C中輸入如下命令,登錄到遠程服務(wù)器:#sftp.0.12.FTP服務(wù)器的配置設(shè)置一、設(shè)計目的在Linux操作系統(tǒng)之上架設(shè)vsftpd服務(wù)器并用自己的賬號登錄服務(wù)器,然后上傳文獻。二、設(shè)計內(nèi)容及規(guī)定1、下載對應(yīng)版本的vsftp服務(wù)器rpm包2、安裝vsftp服務(wù)器;3、配置vsftpd工作環(huán)境;4、啟動vsftpd服務(wù)器;5、vsftpd的常用配置;6、在Windows中登錄到vsftpd服務(wù)器;7、當?shù)仡櫩团渲?;三、設(shè)計算法及流程內(nèi)容一:安裝vsftpd啟動虛擬機,啟動系統(tǒng)進入RedHatLinux9.0查看Vsftp服務(wù)與否安裝內(nèi)容二:配置vsftpd工作環(huán)境配置顧客和目錄配置顧客對于容許匿名訪問的FTP服務(wù)器,應(yīng)當在其主機中創(chuàng)立名為ftp的顧客。此外,還需檢查與否有名為nobody的顧客??墒褂萌缦旅顧z查,若不存在這些顧客,需要此外創(chuàng)立。配置目錄對于ftp服務(wù)器來說,應(yīng)當有一種公共目錄供顧客下載資料對于容許上傳文獻的FTP服務(wù)器,還應(yīng)當設(shè)置具有上傳權(quán)限的目錄。1)在/var目錄中創(chuàng)立名為ftp的目錄,命令如下:(假如已經(jīng)存在該目錄,則忽視此步)#mkdir/var/ftp2)使用如下命令修改目錄ftp的所有者和權(quán)限:#chownroot.root/var/ftp#chmodog-w/var/ftp若容許匿名顧客上傳文獻,應(yīng)當創(chuàng)立一種供匿名顧客上傳文獻的目錄,并將該目錄的所有者和組改為ftp,詳細命令如下:#mkdir/var/ftp/upload#chownftp.ftp/var/ftp/upload內(nèi)容三啟動vsftpd1.這里使用standalone方式啟動vsftpd,需要修改文獻:修改/etc/vsftpd/vsftpd.conf配置文獻,將其中的listen=NO修改為listen=YES,表達使用獨立方式偵聽對ftp的訪問,如圖所示:在終端中輸入命令打開配置文獻:#vi/etc/vsftpd/vsftpd.conf在vsftpd.conf文獻中修改了啟動方式后,需要重新啟動一次xinetd守護進程,然后再使用獨立方式啟動vsftpd.#servicexinetdrestart#servicevsftpdstart2.查看與否已啟動vsftpd:#pstree|grepvsftpd使用netstat命令查看端口的使用狀態(tài),檢查21端口與否處在偵聽狀態(tài)內(nèi)容四、Vsftpd常用配置1.匿名顧客配置在對vsftpd.conf文獻配置之前,復制一種副本,如:#cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.v在vsftpd.conf配置文獻中,默認是容許匿名顧客登錄FTP服務(wù)器的,不過不容許上傳文獻、不容許在服務(wù)器創(chuàng)立目錄??墒褂萌缦旅钚薷脑撐墨I中的有關(guān)選項,變化匿名顧客權(quán)限容許匿名顧客登錄;容許匿名顧客上傳文獻。容許匿名顧客創(chuàng)立目錄。顧客登錄成功后顯示歡迎信息。在Windows中登錄到vsftpd服務(wù)器,并進行有關(guān)操作。詳細環(huán)節(jié)如下:在Windows命令窗口輸入HYPERLINKftp49輸入ls-l,查看ftp目錄信息:接下來執(zhí)行mkdir命令,試著在FTP服務(wù)器中剛創(chuàng)立一種目錄。執(zhí)行成果如圖所示,可以看出,創(chuàng)立目錄失敗。匿名顧客要在FTP服務(wù)器端創(chuàng)立目錄,只能切換到有權(quán)限的upload目錄中才行,按下面命令進行操作,即可在upload目錄中創(chuàng)立一種名為test的目錄。#cdupload#mkdirtest最終測試一下文獻的上傳功能,執(zhí)行以上命令完畢文獻的上傳:#putvsftpd-3.0.2.pre4.tar.gz內(nèi)容五:當?shù)仡櫩团渲茫?)修改配置文獻/etc/vsftpd/vsftpd.conf#接受當?shù)仡櫩蚻ocal_enable=YES#當?shù)仡櫩蜕蟼魑墨I的umasklocal_umask=022(2)新建一種顧客:shj用來登錄ftp服務(wù)器(此處創(chuàng)立的顧客名用自己的名字)(3)重啟vsftp服務(wù)(4)用新建立的賬號登錄服務(wù)器四、程序運行成果分析五、程序源代碼及注釋使用下面的命令創(chuàng)立顧客ftp,并設(shè)置其工作目錄為/var/ftp(該目錄在下面創(chuàng)立)#useradd-d/var/ftpftp在/var目錄中創(chuàng)立名為ftp的目錄,命令如下:(假如已經(jīng)存在該目錄,則忽視此步)#mkdir/var/ftp使用如下命令修改目錄ftp的所有者和權(quán)限:#chownroot.root/var/ftp#chmodog-w/var/ftp若容許匿名顧客上傳文獻,應(yīng)當創(chuàng)立一種供匿名顧客上傳文獻的目錄,并將該目錄的所有者和組改為ftp,詳細命令如下:#mkdir/var/ftp/upload#chownftp.ftp/var/ftp/upload取消防火墻:#serviceiptablesstop在終端中輸入命令打開配置文獻:#vi/etc/vsftpd/vsftpd.conf在vsftpd.conf文獻中修改了啟動方式后,需要重新啟動一次xinetd守護進程,然后再使用獨立方式啟動vsftpd.#servicexinetdrestart#servicevsftpdstart查看與否已啟動vsftpd:#pstree|grepvsftpd使用netstat命令查看端口的使用狀態(tài),檢查21端口與否處在偵聽狀態(tài),詳細命令如下:#netstat-anptul|grep21在對vsftpd.conf文獻配置之前,復制一種副本,如:#cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.v在Windows命令窗口輸入ftp49(虛擬機IP地址)匿名顧客要在FTP服務(wù)器端創(chuàng)立目錄,只能切換到有權(quán)限的upload目錄中才行,按下面命令進行操作,即可在upload目錄中創(chuàng)立一種名為test的目錄。#cdupload#mkdirtest最終測試一下文獻的上傳功能,執(zhí)行以上命令完畢文獻的上傳:#putvsftpd-3.0.2.pre4.tar.gz修改配置文獻/etc/vsftpd/vsftpd.conf#接受當?shù)仡櫩蚻ocal_enable=YES#當?shù)仡櫩蜕蟼魑墨I的umasklocal_umask=0223.Samba服務(wù)器的配置一、設(shè)計目的架設(shè)一臺samba服務(wù)器,用來向局域網(wǎng)內(nèi)各客戶機提供軟件共享服務(wù)。二、設(shè)計內(nèi)容及規(guī)定1、按照Fedora4配套安裝samba軟件;2、創(chuàng)立目錄/usr/soft;3、修改/etc/samba/smb.conf文獻;4、重啟samba服務(wù);三、設(shè)計算法及流程1. 按照Fedora4配套安裝samba軟件;現(xiàn)計劃架設(shè)一臺samba服務(wù)器,用來向局域網(wǎng)內(nèi)個客戶機提供軟件共享服務(wù),常用軟件的安裝包都寄存在服務(wù)器的/usr/soft目錄中,規(guī)定顧客只能從該目錄中讀取文獻,而不能修改目錄中的文獻。此外,各客戶端還可以運用samba服務(wù)器進行臨時文獻互換,即任何顧客有權(quán)限將文獻寫到服務(wù)器的某一目錄(假設(shè)為tmpdoc)。2. 創(chuàng)立目錄/usr/soft,命令為:mkdir/usr/soft;3. 將目錄的訪問權(quán)限修改為755,命令為:chmod755/usr/soft;4. 將常用的軟件復制到目錄/usr/soft中;命令為cp…;5. 使用如下命令創(chuàng)立臨時的文獻互換目錄:mkdir/home/tmpdoc;6. 由于匿名顧客也能在/home/tmpdoc目錄中寫入數(shù)據(jù),需要將該目錄的屬性修改為nobody(samba中使用的匿名登錄,默認的顧客名為nobody),詳細命令:chownnobody:nobody/home/tmpdoc;7. 修改/etc/samba/smb.conf文獻8.執(zhí)行如下命令重啟samba服務(wù):servicesmbrestart;9.接下來在windows中打開“網(wǎng)絡(luò)”窗口,在地址欄中輸入服務(wù)器的地址\\...,可以連接成功選中soft目錄中的文獻,嘗試刪除,將提醒錯誤信息,按照類似的措施打開tmpdoc目錄,試著創(chuàng)立目錄和文獻,能創(chuàng)立成功。對以上各目錄進行修改,規(guī)定各目錄到達如下功能:(1) soft目錄:保留常用的軟件,除了管理員admin之外,所有的顧客都只有讀的權(quán)限,admin可以向該目錄寫入文獻,用來更新安裝軟件包;(2) tempdoc目錄:仍然作為臨時的文獻互換目錄,的有顧客都可以進行讀寫操作。(3) tech目錄:保留技術(shù)部的資料,該目錄只有技術(shù)部的員工可以進行讀寫操作,其他人員不能訪問(經(jīng)理manager可訪問該目錄,不能修改)。(4) market目錄:保留市場部的資料,該目錄只有市場部的員工可以進行讀寫操作,其他人員不能訪問(經(jīng)理manager可訪問該目錄,不能修改)。11.使用如下命令創(chuàng)立兩個顧客組:#groupaddtech#groupaddmarket12.使用如下命令創(chuàng)立顧客:#useradd-s/sbin/nologinadmin#useradd-s/sbin/nologinmanager#useradd-gtech-s/sbin/nologinli#useradd-gmarket-s/sbin/nologinwang接著使用如下命令將各顧客添加到samba密碼文獻中,并設(shè)置密碼#smbpasswd–aadmin反復以上命令為每個顧客設(shè)置好密碼13.使用如下命令再創(chuàng)立兩個目錄:#mkidr/home/tech#mkidr/home/market14.market和tech目錄只有同組顧客有讀寫權(quán)限,其他顧客不能讀寫,使用如下命令設(shè)置兩個目錄的屬組:#chgrpmarket/home/market#chgrptech/home/tech15.經(jīng)理manager對兩個目錄都可以查看,但不能修改,假如將mamager添加到market和tech兩個組中,又具有了寫的權(quán)限,這里使用了一種技巧,將manager設(shè)置為兩個文獻夾的所有者,使用如下命令:#chownmanager/home/market#chownmanager/home/tech16.接著使用如下命令修改兩個目錄的權(quán)限:#chmod570/home/market#chmod570/home/tech17.由于/usr/soft目錄中admin需要有寫權(quán)限,因此使用如下命令將admin改為其屬主即可:#chownadmin/usr/soft18.由于所有的顧客都需要登錄,為了使所有顧客對tmpdoc目錄有寫權(quán)限,使用如下命令將該目錄的權(quán)限設(shè)置為777:#chmod777/home/tmpdoc19.通過以上準備工作來編輯smb.conf配置文獻四、程序運行成果分析五、程序源代碼及注釋創(chuàng)立目錄/usr/soft,命令為:mkdir/usr/soft;將目錄的訪問權(quán)限修改為755,命令為:chmod755/usr/soft;將常用的軟件復制到目錄/usr/soft中;命令為cp…;使用如下命令創(chuàng)立臨時的文獻互換目錄:mkdir/home/tmpdoc;由于匿名顧客也能在/home/tmpdoc目錄中寫入數(shù)據(jù),需要將該目錄的屬性修改為nobody(samba中使用的匿名登錄,默認的顧客名為nobody),詳細命令:chownnobody:nobody/home/tmpdoc;修改/etc/samba/smb.conf文獻,刪除本來的內(nèi)容,輸入如下內(nèi)容:#==============================Globalsettings=============================[global]workgroup=WORKGROUPserverstring=SambaServerVersion%vsecurity=sharelogfile=/var/log/samba/log.%mmaxlogsize=50#==============================ShareDefinitions===========================[soft] Comment=softpath=/usr/softpublic=yeswritable=no[tempdoc]comment=tempdocspath=/home/tmpdocpublic=yeswritable=yes執(zhí)行如下命令重啟samba服務(wù):servicesmbrestart;使用如下命令創(chuàng)立兩個顧客組:#groupaddtech#groupaddmarket12.使用如下命令創(chuàng)立顧客:#useradd-s/sbin/nologinadmin#useradd-s/sbin/nologinmanager#useradd-gtech-s/sbin/nologinli#useradd-gmarket-s/sbin/nologinwang接著使用如下命令將各顧客添加到samba密碼文獻中,并設(shè)置密碼#smbpasswd–aadmin反復以上命令為每個顧客設(shè)置好密碼使用如下命令再創(chuàng)立兩個目錄:#mkidr/home/tech#mkidr/home/marketmarket和tech目錄只有同組顧客有讀寫權(quán)限,其他顧客不能讀寫,使用如下命令設(shè)置兩個目錄的屬組:#chgrpmarket/home/market#chgrptech/home/tech經(jīng)理manager對兩個目錄都可以查看,但不能修改,假如將mamager添加到market和tech兩個組中,又具有了寫的權(quán)限,這里使用了一種技巧,將manager設(shè)置為兩個文獻夾的所有者,使用如下命令:#chownmanager/home/market#chownmanager/home/tech接著使用如下命令修改兩個目錄的權(quán)限:#chmod570/home/market#chmod570/home/tech由于/usr/soft目錄中admin需要有寫權(quán)限,因此使用如下命令將admin改為其屬主即可:#chownadmin/usr/soft由于所有的顧客都需要登錄,為了使所有顧客對tmpdoc目錄有寫權(quán)限,使用如下命令將該目錄的權(quán)限設(shè)置為777:#chmod777/home/tmpdoc通過以上準備工作來編輯smb.conf配置文獻:#=====================GlobalSetting==================[global]workgroup=WORKGROUPserverstring=SambaServersecurity=userlogfile=/var/log/samba/%m.logmaxlogsize=50======================ShareDefinitions================[soft]comment=softpath=/usr/softpublic=yeswritable=nowritelist=amdin[tempdoc]comment=tempdocspath=/home/tmpdocpublic=yeswritable=yes[market]comment=marketdirectorypath=/home/marketpublic=nowritelist=@marketvalidusers=@market,manager[tech]comment=techdirectorypath=/home/techpublic=nowritelist=@techvalidusers=@tech,manager4.Linux進程間的通信一、設(shè)計目的理解消息隊列、信號機制,完畢進程間的通信。二、設(shè)計內(nèi)容及規(guī)定編寫程序,使其實現(xiàn)進程的軟中斷通信。規(guī)定:使用系統(tǒng)調(diào)用結(jié)合signal函數(shù)、消息隊列編寫程序,實現(xiàn)如下功能:啟動兩個終端分別實現(xiàn)消息的發(fā)送與接受,當消息的發(fā)送者按下鍵盤的按鍵“ctrl+c”,發(fā)送者進程檢測到后該信號后變化本來的殺死進程的功能,改為向接受者進程發(fā)送“ctrl+c”字符串,接受者進程收到“ctrl+c”后關(guān)閉接受者進程的終端。三、設(shè)計算法及流程啟動兩個終端分別實現(xiàn)消息的發(fā)送與接受,當消息的發(fā)送者按下鍵盤的按鍵“ctrl+c”,發(fā)送者進程檢測到后該信號后變化本來的殺死進程的功能,改為向接受者進程發(fā)送“ctrl+c”字符串,接受者進程收到“ctrl+c”后關(guān)閉接受者進程的終端。四、程序運行成果分析五、程序源代碼及注釋/*msgrcv.c*/#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#defineBUFFER_SIZE 512constcharyy[]="Ctrl+C";structmessage{ longmsg_type; charmsg_text[BUFFER_SIZE];};intmain(){ intqid; key_tkey; structmessagemsg; msg.msg_text[0]=0; /*根據(jù)不一樣的途徑和關(guān)鍵表達產(chǎn)生原則的key*/ if((key=ftok(".",'a'))==-1) { perror("ftok"); exit(1); } /*創(chuàng)立消息隊列*/ if((qid=msgget(key,IPC_CREAT|0666))==-1) { perror("msgget"); exit(1); } printf("Openqueue%d\n",qid); do { /*讀取消息隊列*/ memset(msg.msg_text,0,BUFFER_SIZE); if(msgrcv(qid,(void*)&msg,BUFFER_SIZE,0,0)<0) { perror("msgrcv"); exit(1); } printf("Themessagefromprocess%d:%s",msg.msg_type,msg.msg_text); if(!strcmp(msg.msg_text,yy)) { printf("\n"); return0; } if(!strncmp(msg.msg_text,"ls",2)) system(msg.msg_text); }while(strncmp(msg.msg_text,"quit",4)); /*從系統(tǒng)內(nèi)核中移走消息隊列*/ if((msgctl(qid,IPC_RMID,NULL))<0) { perror("msgctl"); exit(1); } exit(0);}/*msgsnd.c*/#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<signal.h>#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#defineBUFFER_SIZE 512constcharyy[]="Ctrl+C";structmessage{ longmsg_type; charmsg_text[BUFFER_SIZE];};structmessagemsg;intqid;intflag=0;voidsig_pri(intsig){ strcpy(msg.msg_text,yy); msgsnd(qid,&msg,strlen(msg.msg_text),0); flag=1;}intmain(){ key_tkey; /*根據(jù)不一樣的途徑和關(guān)鍵表達產(chǎn)生原則的key*/ if((key=ftok(".",'a'))==-1) { perror("ftok"); exit(1); } /*創(chuàng)立消息隊列*/ if((qid=msgget(key,IPC_CREAT|0666))==-1) { perror("msgget"); exit(1); } printf("Openqueue%d\n",qid); while(1) { signal(SIGINT,&sig_pri);//ctrl+c if(flag) continue; printf("Entersomemessagetothequeue(enter'quit'toexit):"); if(strcmp(msg.msg_text,yy)==0) { msgsnd(qid,&msg,strlen(msg.msg_text),0); continue; } if((fgets(m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論