




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上學(xué)年第 學(xué)期 操作系統(tǒng) 課程實 驗 報 告學(xué) 院: 專 業(yè): 班 級: 姓 名: 學(xué) 號:
2、; 任課教師: 專心-專注-專業(yè)摘要shell 是一個命令處理器(command processor)是一個讀入并解釋你輸入的命令的程序,它是介于使用者和操作系統(tǒng)之核心程序(kernel)間的一個接口。它是一個交互性命令解釋器。shell 獨立于操作系統(tǒng),這種設(shè)計讓用戶可以靈活選擇適合自己的shel
3、l。shell 讓你在命令行鍵入命令,經(jīng)過shell 解釋后傳送給操作系統(tǒng)(內(nèi)核)執(zhí)行。Shell是一個管理進(jìn)程和運行進(jìn)程的程序。有三個主要功能。(1)運行程序:shell是一個程序啟動器。(2)管理輸入和輸出:shell將進(jìn)程的輸入和輸出連接到一個文件或其他的進(jìn)程。(3)編程關(guān)鍵字:shell;解釋器;程序; 實驗日期:2017年 6月 12日實驗題目實驗五 編程實現(xiàn)自己的shell 實驗地點實驗?zāi)康牧私鈙hell的功能和其執(zhí)行程序的過程,編寫自己的shell程序?qū)嶒瀮?nèi)容1 編輯程序psh1.c,編譯并執(zhí)行。#include<stdio.h>#include<signal.
4、h>#include<string.h>#define maxargs 20#define arglen 100int main()char *arglistmaxargs+1; int numargs; char argbufarglen; char *makestring(); numargs=0; while(numargs<maxargs) printf("Arg%d?",numargs); if(fgets(argbuf,arglen,stdin)&&*argbuf!='n') arglistnumargs+
5、=makestring(argbuf); else if(numargs>0) arglistnumargs=0; execute(arglist); numargs=0; return 0;int execute(char *arglist)execvp(arglist0,arglist);perror("execvp failed");exit(1);char *makestring(char *buf)char *cp,*malloc(); bufstrlen(buf)-1='0' cp=malloc(strlen(buf)+1); if(cp=
6、0)fprintf(stderr,"no memoryn");exit(1);strcpy(cp,buf);return cp;2 編輯程序psh2.c,編譯并執(zhí)行。 #include<stdio.h>#include<signal.h>#include<string.h>#define maxargs 20#define arglen 100int main()char *arglistmaxargs+1; int numargs; char argbufarglen; char *makestring(); numargs=0; wh
7、ile(numargs<maxargs) printf("Arg%d?",numargs); if(fgets(argbuf,arglen,stdin)&&*argbuf!='n') arglistnumargs+=makestring(argbuf); else if(numargs>0)arglistnumargs=0; execute(arglist); numargs=0; return 0;int execute(char *arglist)int pid,exitstatus;pid=fork();switch(pid
8、)case -1:perror("fork failed"); exit(1);case 0: execvp(arglist0,arglist); perror("excvp failed"); exit(1);default:while(wait(&exitstatus)!=pid); printf("child exited with status %d,%dn",exitstatus>>8,exitstatus&0377);char *makestring(char *buf)char *cp,*ma
9、lloc(); bufstrlen(buf)-1='0' cp=malloc(strlen(buf)+1); if(cp=0)fprintf(stderr,"no memoryn"); exit(1);strcpy(cp,buf);return cp;3測試運行結(jié)果(1)分別執(zhí)行psh1和psh2,執(zhí)行過程中,輸入ps命令寫出兩個程序運行的結(jié)果。并分析區(qū)別和原因。(2)在執(zhí)行psh2過程中,輸入./psh1和ps命令寫程序運行的結(jié)果。實驗結(jié)果(1)分析:在psh1.c中,構(gòu)造函數(shù)intexecute()execvp(arglist0,arglist); ;e
10、xit(1);只執(zhí)行一次,所以在輸入ps后直接自動退出;在psh2.c中,構(gòu)造函數(shù)int execute(char *arglist) switch()case -1: ; exit(1);case 0: execvp(arglist0,arglist); exit(1);Default: 運用switch函數(shù),所以在輸入ps后仍繼續(xù)執(zhí)行。 (2)遇到問題及解決方法1. 編譯后出現(xiàn)較多warning警告,如圖下:雖編譯時出現(xiàn)警告,但是并不影響程序的運行,進(jìn)而繼續(xù)執(zhí)行 。 總結(jié)經(jīng)過本次實驗的學(xué)習(xí),知道了可以通過PS命令查看用戶空間的進(jìn)程,可以設(shè)置參數(shù):-a:列出所在進(jìn)程,包括其他終端由其他用戶運行的程序。-l:更出各個進(jìn)程的詳細(xì)狀態(tài)。 也知道了shell運行程序的過程:(1)用戶鍵入程序名 a.out(2)Shell建立一個新的進(jìn)程來運行這個程序;(3)Shell將程序從磁盤載入(4)程序在它的進(jìn)程中運行直到結(jié)束。在編程過程中要多了解庫函數(shù),可以閱讀相應(yīng)的幫助文件來獲得有用的信息。shell 語言與其他編程語言相比真正有說服力。Shell 提供把進(jìn)程和文件連接在一起的強力的記法。在這個角度上,shell 語言非常適合作為 Unix 操作系統(tǒng)的一般性范例。在 Unix 中,基本的計算代理(agent)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共數(shù)據(jù)授權(quán)運營法律機制研究
- 夏季健康飲食指南
- 護(hù)理教育學(xué)教案
- 天天來刷牙健康教案課件
- 人事操作流程規(guī)范化管理
- 頤和園介紹英文介紹課件
- 嬰兒出院護(hù)理常規(guī)
- 超聲醫(yī)生崗位競聘
- 藥房調(diào)劑差錯培訓(xùn)
- 音標(biāo)課件與美術(shù)作品對小學(xué)生的教
- 安保工作月度總結(jié)
- 開業(yè)美容項目活動方案
- 2025年技術(shù)玻璃制品行業(yè)市場調(diào)研報告
- 2025至2030高純氯化鉀行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025年吉林省中考數(shù)學(xué)試卷真題(含答案詳解)
- 2025年中國自由鍛件行業(yè)發(fā)展運行現(xiàn)狀及投資潛力預(yù)測報告
- 醫(yī)學(xué)美容技術(shù)專業(yè)教學(xué)標(biāo)準(zhǔn)(高等職業(yè)教育專科)2025修訂
- QGDW11970.7-2023輸變電工程水土保持技術(shù)規(guī)程第7部分水土保持設(shè)施質(zhì)量檢驗及評定
- 變電站創(chuàng)優(yōu)工程匯報
- 黨課課件含講稿:以作風(fēng)建設(shè)新成效激發(fā)干事創(chuàng)業(yè)新作為
- 2025年度職業(yè)技能鑒定國家題庫維修電工高級技師復(fù)習(xí)題庫及答案(完整版)
評論
0/150
提交評論