Linux報告昆明理工大學歐陽鑫_第1頁
Linux報告昆明理工大學歐陽鑫_第2頁
Linux報告昆明理工大學歐陽鑫_第3頁
Linux報告昆明理工大學歐陽鑫_第4頁
Linux報告昆明理工大學歐陽鑫_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、昆明理工大學信息工程與自動化學院學生實驗報告( 2016 2017 學年 第 二 學期 )課程名稱:Linux操作系統(tǒng)及程序設計 開課實驗室:呈貢校區(qū)信自樓 2017 年6 月 3 日年級、專業(yè)、班學號 姓名成績實驗項目名稱Linux操作系統(tǒng)及程序設計指導教師歐陽鑫教師評語該同學是否了解設計原理: A.了解B.基本了解C.不了解該同學的上機能力: A.強 B.中等 C.差 該同學的上機是否達到要求 : A.達到 B.基本達到C.未達到上機報告是否規(guī)范: A.規(guī)范 B.基本規(guī)范C.不規(guī)范上機過程是否詳細記錄: A.詳細 B.一般 C.沒有 注:5個A 為優(yōu) 4個A為良 3個A 為及格 其余為不及

2、格。教師簽名: 年 月 日目錄上機一:Linux及開發(fā)環(huán)境安裝 . ? 頁上機二:Linux的文件及目錄操作1. ? 頁上機三:Linux的文件及目錄操作2 . ? 頁上機四:Linux進程及網(wǎng)絡開發(fā)1. ? 頁上機五:Linux進程及網(wǎng)絡開發(fā)2. ? 頁上機一:Linux及開發(fā)環(huán)境安裝一、實驗目的及要求 安裝虛擬機,并在虛擬機上安裝ubuntu系統(tǒng)二、實驗環(huán)境和相關(guān)軟件及版本 Windows7,VMware-workstation-full-10.0.4-2249910,vm10keygen,ubuntu-16.04-desktop-amd643、 實驗內(nèi)容及步驟 (一)安裝虛擬機雙擊打開下

3、載好的VMware Workstation應用程序彈出安裝向?qū)Ч催x我接受許可協(xié)議中的條款選擇典型安裝選擇安裝路徑點下一步繼續(xù)進行安裝在桌面創(chuàng)建快捷方式點下一步繼續(xù)彈出注冊碼頁面打開VMware注冊機并點擊Generate獲取注冊碼輸入注冊碼安裝完成并打開(2) 安裝ubuntu打開VMware Workstation并點擊創(chuàng)建新的虛擬機安裝光盤映像文件設置用戶名和密碼命名虛擬機制定磁盤容量準備創(chuàng)建虛擬機安裝中安裝成功并登錄4、 實驗結(jié)果、分析和結(jié)論 本次實驗我成功安裝了虛擬機,對Linux有了第一次比較接近的認識,在課上學習是比不上自己實際動手操作的,在這個過程中我感覺自己對Linux產(chǎn)生了一

4、些興趣,受益良多。上機二: Linux的文件及目錄操作1一、實驗目的及要求 掌握文件及目錄操作的基本命令,并在虛擬機上啟動命令行加以實現(xiàn)二、實驗環(huán)境和相關(guān)軟件及版本 Windows7、VMware、ubuntu3、 實驗內(nèi)容及步驟1、用ls命令顯示當前目錄下的文件2、 用mkdir創(chuàng)建一個目錄文件3、用rmdir刪除一個目錄文件刪除空目錄刪除非空目錄4、用lsl命令顯示當前目錄下的文件的文件屬性5、用mv命令改變文件名6、用chmod命令改變文件屬性(改為可執(zhí)行文件)7、用cp命令復制文件8、用gzip命令壓縮文件成.gz文件9、用gzipdv命令解壓文件四、實驗結(jié)果、分析和結(jié)論 通過這次實驗

5、,我第一次在Linux系統(tǒng)下使用命令,基本掌握了文件和目錄的創(chuàng)建和刪除、文件復制、文件編輯、文件重命名、顯示和改變文件屬性、壓縮文件和解除壓縮等基本命令,但是對于這些命令還不熟悉,需要多加使用以此鞏固。上機三:Linux的文件及目錄操作2一、實驗目的及要求 利用系統(tǒng)調(diào)用和標準函數(shù)庫對文件和目錄進行操作。二、實驗環(huán)境和相關(guān)軟件及版本 Windows7、VMware、ubuntu 三、實驗內(nèi)容及步驟編寫.C文件 調(diào)用.C文件編譯并運行.C文件 READ系統(tǒng)調(diào)用編寫READ.C文件READ系統(tǒng)調(diào)用編譯READ.C文件4、 實驗結(jié)果、分析和結(jié)論 通過此次實驗,我對在Linux系統(tǒng)中使用C語言操作和系統(tǒng)

6、調(diào)用等有了一定的了解,同時也遇到了一些難題,對很多函數(shù)庫的用法以及深層次的文件目錄操作都很欠缺,對難題也沒有很好地解決,還需要多加練習動手,這方面的技術(shù)和能力還有待加強。上機四:Linux進程及網(wǎng)絡開發(fā)1一、實驗目的及要求 利用ForkThread等系統(tǒng)調(diào)用進行網(wǎng)絡開發(fā)二、實驗環(huán)境和相關(guān)軟件及版本 Windows7、VMware、ubuntu三、實驗內(nèi)容及步驟程序1:fork進程控制#includemain()intp1,p2,i; if(p1=fork()for(i=0;i500;i+)printf(child%dn,i); elseif(p2=fork()for(i=0;i500;i+)p

7、rintf(son%dn,i); 編寫編譯運行的過程如下:程序2:#include#includeintmain()pid_tfpid;/printf(fork!); printf(fork!/n); fpid=fork(); if(fpid0)printf(errorinfork1); elseif(fpid=0)printf(Iamthechildprocess,myprocessidis%d/n,getpid();elseprintf(Iamtheparentprocess,myprocessidis%d/n,getpid();return0;編寫編譯運行的過程如下:4、 實驗結(jié)果、分析

8、和結(jié)論 通過此次實驗我對在Linux中的進程調(diào)控有了一些認識,并且基本掌握了進程調(diào)控的一些方法,只是學習還很淺,需要不斷深入加強。 上機五:Linux進程及網(wǎng)絡開發(fā)2一、實驗目的及要求 開發(fā)一個Linux命令行基于C/S結(jié)構(gòu)的TCP/IP的即時聊天程序。2、 實驗環(huán)境和相關(guān)軟件及版本W(wǎng)indows7、VMware、ubuntu三、實驗內(nèi)容及步驟1、客戶端設計流程:2、服務端設計流程:3、編寫服務端收發(fā)消息程序server.c:#include#include#include/數(shù)據(jù)類型定義#include#include/定義數(shù)據(jù)結(jié)構(gòu)sockaddr_in#include/提供socket函數(shù)及

9、數(shù)據(jù)結(jié)構(gòu)#include#include#include#include#include#include#include#definePERMS_IRUSR|S_IWUSR#defineMYPORT3490/宏定義定義通信端口#defineBACKLOG10/宏定義,定義服務程序可以連接的最大客戶數(shù)量#defineWELCOME|-Welcometothechatroom!-|/宏定義,當客戶端連接服務端時,想客戶發(fā)送此歡迎字符串/轉(zhuǎn)換函數(shù),將int類型轉(zhuǎn)換成char*類型voiditoa(inti,char*string)intpower,j;j=i;for(power=1;j=10;j/=

10、10)power*=10;for(;power0;power/=10)*string+=0+i/power;i%=power;*string=0;/得到當前系統(tǒng)時間voidget_cur_time(char*time_str)time_ttimep;structtm*p_curtime;char*time_tmp;time_tmp=(char*)malloc(2);memset(time_tmp,0,2);memset(time_str,0,20);time(&timep);p_curtime=localtime(&timep);strcat(time_str,();itoa(p_curtim

11、e-tm_hour,time_tmp);strcat(time_str,time_tmp);strcat(time_str,:);itoa(p_curtime-tm_min,time_tmp);strcat(time_str,time_tmp);strcat(time_str,:);itoa(p_curtime-tm_sec,time_tmp);strcat(time_str,time_tmp);strcat(time_str,);free(time_tmp);/創(chuàng)建共享存儲區(qū)key_tshm_create()key_tshmid;/shmid=shmget(IPC_PRIVATE,1024,

12、PERM);if(shmid=shmget(IPC_PRIVATE,1024,PERM)=-1)fprintf(stderr,CreateShareMemoryError:%sna,strerror(errno);exit(1);returnshmid;/端口綁定函數(shù),創(chuàng)建套接字,并綁定到指定端口intbindPort(unsignedshortintport)intsockfd;structsockaddr_inmy_addr;sockfd=socket(AF_INET,SOCK_STREAM,0);/創(chuàng)建基于流套接字my_addr.sin_family=AF_INET;/IPv4協(xié)議族my

13、_addr.sin_port=htons(port);/端口轉(zhuǎn)換=INADDR_ANY;bzero(&(my_addr.sin_zero),0);if(bind(sockfd,(structsockaddr*)&my_addr,sizeof(structsockaddr)=-1)perror(bind);exit(1);printf(bingsuccess!n);returnsockfd;intmain(intargc,char*argv)intsockfd,clientfd,sin_size,recvbytes;/定義監(jiān)聽套接字、客戶套接字pid_tpid,ppid;/定義父子線程標記變量c

14、har*buf,*r_addr,*w_addr,*temp,*time_str;/=0;/定義臨時存儲區(qū)structsockaddr_intheir_addr;/定義地址結(jié)構(gòu)key_tshmid;shmid=shm_create();/創(chuàng)建共享存儲區(qū)temp=(char*)malloc(255);time_str=(char*)malloc(20);sockfd=bindPort(MYPORT);/綁定端口while(1)if(listen(sockfd,BACKLOG)=-1)/在指定端口上監(jiān)聽perror(listen);exit(1);printf(listening.n);if(cli

15、entfd=accept(sockfd,(structsockaddr*)&their_addr,&sin_size)=-1)/接收客戶端連接perror(accept);exit(1);printf(acceptfrom:%dn,inet_ntoa(their_addr.sin_addr);send(clientfd,WELCOME,strlen(WELCOME),0);/發(fā)送問候信息buf=(char*)malloc(255);ppid=fork();/創(chuàng)建子進程if(ppid=0)/printf(ppid=0n);pid=fork();/創(chuàng)建子進程while(1)if(pid0)/父進程

16、用于接收信息memset(buf,0,255);/printf(recvn);/sleep(1);if(recvbytes=recv(clientfd,buf,255,0)=0)perror(recv1);close(clientfd);raise(SIGKILL);exit(1);/writebufsdatatosharememoryw_addr=shmat(shmid,0,0);memset(w_addr,0,1024);strncpy(w_addr,buf,1024);get_cur_time(time_str);strcat(buf,time_str);printf(%sn,buf);

17、elseif(pid=0)/子進程用于發(fā)送信息/scanf(%s,buf);sleep(1);r_addr=shmat(shmid,0,0);/printf(-%sn,r_addr);/printf(cmp:%dn,strcmp(temp,r_addr);if(strcmp(temp,r_addr)!=0)strcpy(temp,r_addr);get_cur_time(time_str);strcat(r_addr,time_str);/printf(discriptor:%dn,clientfd);/if(send(clientfd,buf,strlen(buf),0)=-1)if(sen

18、d(clientfd,r_addr,strlen(r_addr),0)=-1)perror(send);memset(r_addr,0,1024);strcpy(r_addr,temp);elseperror(fork);printf(-n);free(buf);close(sockfd);close(clientfd);return0;4、編寫客戶端收發(fā)消息程序client.c#include#include/定義數(shù)據(jù)結(jié)構(gòu)sockaddr_in#include/提供socket函數(shù)及數(shù)據(jù)結(jié)構(gòu)#include/數(shù)據(jù)類型定義#include#include#include#include#inc

19、lude#includeintmain(intargc,char*argv)structsockaddr_inclientaddr;/定義地址結(jié)構(gòu)pid_tpid;intclientfd,sendbytes,recvbytes;/定義客戶端套接字structhostent*host;char*buf,*buf_r;if(argch_addr);bzero(&(clientaddr.sin_zero),0);if(connect(clientfd,(structsockaddr*)&clientaddr,sizeof(structsockaddr)=-1)/連接服務端perror(connectn);exit(1);buf=(char*)malloc(120);memset(buf,0,120);buf_r=(char*)malloc(100);if(recv(clientfd,buf,100,0)=-1)perror(recv:);exit(1);printf(n%sn,buf);pid=

溫馨提示

  • 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

提交評論