




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗報告5課程名稱: Linux程序設計 實驗名稱: Linux文件操作 學生姓名: 班級: 學號: 指導老師: 成績: 一、實驗目的1.掌握系統(tǒng)函數(shù)system、chmod、stat的應用;2.掌握常用文件類型判斷的程序設計;3.掌握有關文件目錄操作函數(shù)scandir等的應用。二、實驗任務與要求1.應用函數(shù)system、chmod、stat獲取文件屬性的程序設計;2.使用文件屬性st_mode判斷文件類型的程序設計;3.文件目錄操作函數(shù)scandir等的程序設計。三、實驗工具與準備計算機PC機,Linux Ubuntu操作系統(tǒng)四、實驗步驟與操作指導1.調試下列程序。 操作步驟步驟1 編輯源程
2、序代碼。rootlocalhost root#vi 5-1.c程序代碼如下:/*5-1.c 獲取“/etc/passwd”文件的大小*/#include<unistd.h>#include<sys/stat.h> /*文件預處理,包含stat函數(shù)庫*/int main () /*C程序的主函數(shù),開始入口*/struct stat buf;system("vim /home/liu");chmod("/home/liu",S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); stat("/home/liu&q
3、uot;,&buf);printf("“/etc/passwd”文件的大小是:%dn",buf.st_size);return 0;步驟2 編譯程序。rootlocalhost root#gcc -o 5-1 5-1.c步驟3 執(zhí)行程序。rootlocalhost root#./5-1 問題思考:(1)修改程序,能夠顯示文件權限的所有者及最后一次文件修改的時間;(2)終端命令ls有使用格式:“l(fā)s -l”,請修改程序,程序的功能盡可能接近此命令文件。2程序設計題。設計一個程序,要求判斷“/etc/passwd”的文件類型。提示:使用st_mode屬性,可以使用幾個宏
4、來判斷:S_ISLNK(st_mode) 是否是一個連接,S_ISREG是否是一個常規(guī)文件,S_ISDIR是否是一個目錄,S_ISCHR是否是一個字符設備,S_ISBLK是否是一個塊設備,S_ISFIFO是否是一個FIFO文件,S_ISSOCK是否是一個SOCKET文件。最后一次文件修改的時間3調試下列程序。程序的功能是打印系統(tǒng)目錄“/etc/rc.d”下所有的文件和子目錄的名字。操作步驟步驟1 編輯源程序代碼。rootlocalhost root#vi 5-2.c程序代碼如下: /*5-2.c程序:讀取系統(tǒng)目錄文件“/etc/rc.d”中所有的目錄結構*/#include<stdio.
5、h>#include<sys/types.h>#include<dirent.h>#include<unistd.h>int main()DIR * dir;struct dirent * ptr;dir=opendir("/etc/rc.d");printf("/etc/rc.d目錄中文件或子目錄有:n");while(ptr = readdir(dir)!=NULL)printf("%sn",ptr->d_name);closedir(dir);問題思考:(1)修改程序,要求讀取“/
6、etc”目錄下所有的目錄結構,并依字母順序排列。#include<dirent.h>考慮以下語句:scandir("/etc",&namelist,0,alphasort);程序段:while(n-) printf("%sn", namelistn->d_name); free(namelistn);4. 調試并分析下列程序的結果。程序的功能是用遞歸的方法列出某一目錄下的全部文件的大小和文件夾及創(chuàng)建日期,包括子文件和子文件夾。操作步驟步驟1 編輯源程序代碼。rootlocalhost root#vi 5-3.c程序代碼如下: #
7、include<stdio.h>#include<time.h>#include<linux/types.h>#include<dirent.h>#include<sys/stat.h>#include<unistd.h>#include<string.h>char *wday="日","一","二","三","四","五","六"void list(char *name,
8、int suojin) DIR *dirname; struct dirent *content; struct stat sb; struct tm *ctime; int i; if(dirname=opendir(name)=NULL) printf("該目錄不存在n"); return; chdir(name);/*改換工作目錄*/ while(content=readdir(dirname)!=NULL) for(i=0;i<suojin;i+) putchar('t'); if(content->d_type=4) printf(&q
9、uot;目錄t"); else if(content->d_type=8) printf("文件t"); else printf("其他t"); stat(content->d_name,&sb); ctime=gmtime(&sb.st_mtime); printf("%d年%d月%d日 星期%s %d:%d:%dt",ctime->tm_year+1900, 1+ctime->tm_mon,ctime->tm_mday,wdayctime->tm_wday,ctime-
10、>tm_hour,ctime->tm_min,ctime->tm_sec);printf("%dt",sb.st_size);printf("%sn",content->d_name);/*列出目錄或文件的相關信息*/if(content->d_type=4&&strcmp(content->d_name,".")&&strcmp(content->d_name,".") list(content->d_name,suojin+1);/
11、*如果是目錄,則遞歸列出目錄里的內容*/ closedir(dirname); chdir(".");/*當該層目錄中的文件列完后,返回父目錄*/int main(int argc,char *argv)char name256; printf("類型t最后修改時間ttt大小t文件名n"); printf("*n"); if(argc=1) printf("Enter directory name:"); scanf("%s",name); list(name,0); else list(argv1,0); 五、實驗結果記錄 11(1)1(2)2、3、3(1)4、先用if語句判斷輸入的是否存在,再用while判斷是文件還是目錄,列出目錄或文件的相關信息。如果是目錄,則遞歸列出目錄里的內容,當該層目錄中的文件列完后,返回父目錄六、實驗結果分析1、st_uid是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年現(xiàn)代制造業(yè)人才培養(yǎng)考試試卷及答案
- 2025年網(wǎng)絡技術應用考試卷及答案
- 2025年衛(wèi)生信息管理??齐A段考試試題及答案
- 2025年模具設計工程師考試試題及答案反饋
- 2025年翻譯專業(yè)資格考試試題及答案
- 2025年肥料學與土壤學基礎考試試題及答案
- 2025年互聯(lián)網(wǎng)金融專業(yè)考試試題及答案
- 2025年國際經(jīng)濟與貿易專業(yè)綜合素質考試卷及答案
- 2025年公共管理與政策考試試卷及答案
- 林產品產銷戰(zhàn)略合作協(xié)議
- 廣東省珠海市香洲區(qū)2023-2024學年部編版八年級下學期期末歷史試題(無答案)
- 高溫熔融作業(yè)安全技術規(guī)范
- 蘇教版小學四年級下冊科學期末測試卷及完整答案(歷年真題)
- 高三二模作文“認清客觀現(xiàn)實”與“安撫自己心理”審題立意及范文
- 《不斷變化的人口問題》核心素養(yǎng)目標教學設計、教材分析與教學反思-2023-2024學年初中歷史與社會人教版新課程標準
- 血液透析惡心嘔吐的應急預案
- 物流倉儲中心項目建設背景和必要性
- 安徽省渦陽縣2023-2024學年七年級下學期期中考試語文試題
- 藝術設計專業(yè)面試問題
- 廣東省深圳市龍華區(qū)2023-2024學年二年級下學期期中數(shù)學試題
- 小學科學湘科版六年級下冊全冊同步練習含答案
評論
0/150
提交評論