首先我們對linux下ls命令已經非常熟悉了,我在這裡用c語言僅實現ls -l及ls -l ***。(僅作練習使用)
首先需要了解ls -l命令都做了那些活動,那麼就需要研究以下:
我們可以看到有七列主要內容,先來逐個分析:
檔案的型別,此圖里所有檔案均為目錄,所以是d。許可權=本使用者許可權+本組使用者許可權+其他使用者許可權
硬鏈結數
檔案所輸使用者名稱 檔案所輸使用者組名
檔案大小
時間(這個時間是該檔案最後一次被修改的時間)
檔名 為了獲取以上資訊,我們可以使用乙個庫里的函式來幫助我們。
可以看到我們所需要的資訊都在該函式的結構體被定義。我們可以直接使用這些介面獲取。以下附上**:
#include
#include
#include
#include
#include
#include
#include
#include
int file_type(md)
int file_ls(char *pd)
struct group *gd=getgrgid(sbuf.st_gid);
if(gd!=null)
//file size
printf("%04d ",sbuf.st_size);
//file
time
struct tm *tf=localtime(&sbuf.st_mtime);
printf("%04d/%02d/%02d ",(tf->tm_year+1900),(tf->tm_mon+1),tf->tm_mday);
printf("%4d:%02d:%02d ",(tf->tm_hour),(tf->tm_min),tf->tm_sec);
//file name
printf("%s",pd);
//symbolic-link
if(s_islnk(sbuf.st_mode))
;int len=sizeof(buf);
readlink(pd,buf,len);
printf("%s ",buf);
}printf("\n");
}int main(int argc,char *argv)
struct dirent *pd=null;
while((pd=readdir(pdir))!=null)
}else
if(argc==2)
}
Linux下ls和rm命令的模擬
1.ls和rm命令 ls命令是顯示目錄下的檔案或目錄,不顯示深層子目錄 rm命令是刪除命令,rm rf 目錄名 才能刪除此目錄下的所有子目錄和檔案 2.ls命令的模擬 用於模擬ls的功能 include include include include include include include ...
基於C 語言在Linux環境下模擬實現命令直譯器
一 需求分析 程式實現的功能如下 顯示當前所在目錄的路徑名 列出指定目錄中所有的目錄和檔案 改變當前工作目錄 新建乙個目錄即新建乙個資料夾 刪除乙個目錄即刪除乙個資料夾 退出命令解釋程式 重新命名乙個檔案或目錄 複製已經存在的目錄 在指定的乙個目錄及其子目錄中查詢指定的檔案和目錄,並輸出查詢到的檔案...
基於C 語言在Linux環境下模擬實現命令直譯器
一 需求分析 程式實現的功能如下 顯示當前所在目錄的路徑名 列出指定目錄中所有的目錄和檔案 改變當前工作目錄 新建乙個目錄即新建乙個資料夾 刪除乙個目錄即刪除乙個資料夾 退出命令解釋程式 重新命名乙個檔案或目錄 複製已經存在的目錄 在指定的乙個目錄及其子目錄中查詢指定的檔案和目錄,並輸出查詢到的檔案...