国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

IO進(jìn)程線(xiàn)程,文件與目錄,實(shí)現(xiàn)linux任意目錄下ls -la

這篇具有很好參考價(jià)值的文章主要介紹了IO進(jìn)程線(xiàn)程,文件與目錄,實(shí)現(xiàn)linux任意目錄下ls -la。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

注意文件的名字、路徑是如何輸入的。

函數(shù)opendir打開(kāi)目錄,struct dirent,struct stat這些結(jié)構(gòu)體的含義。?

????????readdir()函數(shù)是一個(gè)用于讀取目錄內(nèi)容的系統(tǒng)調(diào)用或庫(kù)函數(shù),在類(lèi)Unix操作系統(tǒng)中(如Linux)廣泛使用。它用于遍歷目錄,并逐個(gè)獲取目錄中的條目(文件和子目錄)。

????????lstat和stat是用于獲取文件信息的系統(tǒng)調(diào)用,主要在處理符號(hào)鏈接時(shí)存在差異。以下是它們之間的主要區(qū)別:

1. 處理符號(hào)鏈接:
? lstat:當(dāng)使用lstat函數(shù)獲取一個(gè)符號(hào)鏈接的信息時(shí),它返回的是符號(hào)鏈接本身的信息,而不是鏈接所指向文件的信息。這使得你能夠查看鏈接本身的屬性,而不用跟隨鏈接指向的文件。
? ?stat:當(dāng)使用stat函數(shù)獲取一個(gè)符號(hào)鏈接的信息時(shí),它會(huì)自動(dòng)跟隨鏈接,返回鏈接指向的文件的信息,而不是鏈接本身的信息。

2. 跟隨鏈接:
? ?lstat:對(duì)于符號(hào)鏈接,lstat不會(huì)自動(dòng)跟隨鏈接,它會(huì)返回鏈接本身的屬性,包括鏈接指向的路徑。
? ?stat:對(duì)于符號(hào)鏈接,stat會(huì)自動(dòng)跟隨鏈接,返回鏈接指向的文件的屬性。

????????對(duì)于符號(hào)鏈接,`lstat`返回了鏈接本身的信息,而`stat`返回了鏈接指向的文件的信息。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-683540.html

/*===============================================
*   文件名稱(chēng):stat.c
*   創(chuàng) 建 者:WM
*   創(chuàng)建日期:2023年08月24日
*   描    述:文件目錄下除了隱藏文件查看
================================================*/
#include <stdio.h>
#include <sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include<string.h>
#include<pwd.h>
#include<grp.h>
#include<time.h>
#include<dirent.h>
int main(int argc, char *argv[])
{ 
    char path[100]={0};
    if(2!=argc)
    {
        printf("error\n");
        return -1;
    }
 
    DIR * dirp=opendir(argv[1]);//獲取所有的目錄下的文件名
    struct dirent *a;//接收
     strcpy(path,argv[1]);
    while (NULL!=(a=readdir(dirp)))//從第一個(gè)文件名開(kāi)始遍歷到最后。
    {
       struct stat st;
           strcpy(path,argv[1]);
           strcat(path,"/");
           strcat(path,a->d_name);
        if(a->d_name[0]=='.')//去除隱藏文件
           continue;
    lstat(path,&st);//鏈接文件讀取

    if(S_ISREG(st.st_mode))//判斷文件類(lèi)型
        printf("-");
    else if (S_ISDIR(st.st_mode))
        printf("d");
    else if(S_ISLNK(st.st_mode))
        printf("l");

    for (  int i=8; i >= 0; i-=3)//查看文件的權(quán)限
    {
        if(st.st_mode & 1<<i)
            printf("r");
        else
            printf("-");
        if(st.st_mode&1<<(i-1))
            printf("w");
        else
            printf("-");
        if(st.st_mode&1<<(i-2))
            printf("x");
        else
            printf("-");
    }
    //鏈接數(shù)
    printf(" %ld",st.st_nlink);
    //用戶(hù)名
    struct passwd *pw=getpwuid(st.st_uid);
    printf(" %s ",pw->pw_name);
    //用戶(hù)組名
    struct group *gr =getgrgid(st.st_gid);
    printf( "%s",gr->gr_name);
    //大小
    printf(" %ld",st.st_size);
    //去除換行
    char arr[100]={0};
    strcpy(arr,ctime(&st.st_mtime));
    if(arr[strlen(arr)-1]=='\n')
      arr[strlen(arr)-1]='\0';
    printf(" %s ",arr);

    printf(" %s ",a->d_name);
    puts("");
    }
    return 0;
} 

到了這里,關(guān)于IO進(jìn)程線(xiàn)程,文件與目錄,實(shí)現(xiàn)linux任意目錄下ls -la的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Shell 命令集合 磁盤(pán)管理 】Linux 列出目錄中的文件和子目錄 ls命令使用教程

    【Shell 命令集合 磁盤(pán)管理 】Linux 列出目錄中的文件和子目錄 ls命令使用教程

    Shell 命令專(zhuān)欄:Linux Shell 命令全解析 ls命令是Linux系統(tǒng)中常用的一個(gè)命令,用于列出目錄中的文件和子目錄。它的作用是顯示當(dāng)前工作目錄中的文件和目錄列表。 當(dāng)我們?cè)诮K端輸入ls命令時(shí),系統(tǒng)會(huì)將當(dāng)前目錄中的文件和子目錄的名稱(chēng)以及相關(guān)信息顯示出來(lái)。這些信息包括文

    2024年02月08日
    瀏覽(105)
  • Linux ls命令教程:如何有效地列出文件和目錄(附案例詳解和注意事項(xiàng))

    ls 是Linux中的基本命令之一,任何Linux用戶(hù)都應(yīng)該知道。 ls 命令列出文件系統(tǒng)中的文件和目錄,并顯示有關(guān)它們的詳細(xì)信息。它是所有Linux發(fā)行版都安裝的GNU核心實(shí)用程序包的一部分。 ls 命令在所有Linux發(fā)行版中都是可用的,包括但不限于Ubuntu, Debian, Fedora, CentOS等。如果你發(fā)現(xiàn)

    2024年02月04日
    瀏覽(96)
  • 【文件IO】Linux 文件操作(一) —— 遍歷指定目錄下的所有文件

    【文件IO】Linux 文件操作(一) —— 遍歷指定目錄下的所有文件

    目錄 一、訪(fǎng)問(wèn)目錄相關(guān)函數(shù) 1、打開(kāi)/訪(fǎng)問(wèn)目錄 (opendir / fdopendir) 2、讀取目錄內(nèi)容 (readdir) 3、關(guān)閉目錄 (closedir) 二、遍歷指定目錄下的所有文件 opendir / fdopendir 函數(shù)的作用是訪(fǎng)問(wèn)指定路徑的目錄,函數(shù)聲明如下: (1) opendir opendir 函數(shù)是通過(guò)用戶(hù)提供的目錄路徑來(lái)訪(fǎng)問(wèn)目錄, 參

    2024年02月04日
    瀏覽(23)
  • Linux中查看端口被哪個(gè)進(jìn)程占用、進(jìn)程調(diào)用的配置文件、目錄等

    Linux中查看端口被哪個(gè)進(jìn)程占用、進(jìn)程調(diào)用的配置文件、目錄等

    1.查看被占用的端口的進(jìn)程, netstat/ss -antulp | grep :端口號(hào) 2.通過(guò)上面的命令就可以列出,這個(gè)端口被哪些應(yīng)用程序所占用,然后找到對(duì)應(yīng)的進(jìn)程PID 3.根據(jù)PID查詢(xún)進(jìn)程。如果想詳細(xì)查看這個(gè)進(jìn)程,PID具體是哪一個(gè)進(jìn)程,可以通過(guò)命令的方式進(jìn)行查看進(jìn)程的詳細(xì)信息, ps -ef | gr

    2024年02月16日
    瀏覽(25)
  • IO 與進(jìn)程線(xiàn)程

    2023年05月28日
    瀏覽(25)
  • linux系統(tǒng)報(bào)錯(cuò):ls: 正在讀取目錄‘.‘: 輸入/輸出錯(cuò)誤

    linux系統(tǒng)報(bào)錯(cuò):ls: 正在讀取目錄‘.‘: 輸入/輸出錯(cuò)誤

    在linux系統(tǒng)的“/mnt”目錄下掛載了一個(gè)硬盤(pán),然后拷貝服務(wù)器上的數(shù)據(jù)到該硬盤(pán),在拷貝數(shù)據(jù)過(guò)程中報(bào)錯(cuò):“本地文件為只讀文件,無(wú)法拷貝到所掛載的硬盤(pán)下面”。于是我打開(kāi)掛載硬盤(pán)的所在目錄查看目錄是否存在,\\\"ls\\\"看了下文件,發(fā)現(xiàn)“l(fā)s”命令無(wú)法使用,報(bào)錯(cuò)“l(fā)s: 正在

    2024年02月12日
    瀏覽(39)
  • IO進(jìn)程線(xiàn)程Day8

    IO進(jìn)程線(xiàn)程Day8

    使用信號(hào)燈集完成三個(gè)進(jìn)程的同步,A進(jìn)程輸出字符A,B進(jìn)程輸出字符B,C進(jìn)程輸出字符C,要求輸出結(jié)果為ABCABCABCABCABC...

    2024年01月25日
    瀏覽(26)
  • IO進(jìn)程線(xiàn)程作業(yè)day2

    IO進(jìn)程線(xiàn)程作業(yè)day2

    使用fread和fwrite完成兩個(gè)圖片文件的拷貝 現(xiàn)象展示:? 使用read、write完成兩個(gè)圖片文件的拷貝 效果圖 ? 3 將時(shí)間在文件中跑起來(lái) 1、17:30:41 2、17:30:42 3、17:30:43 鍵入ctrl+c,結(jié)束進(jìn)程后 ... 4、17:35:28 5、17:35:29 效果圖: ?思維導(dǎo)圖

    2024年02月19日
    瀏覽(25)
  • IO進(jìn)程線(xiàn)程day4作業(yè)

    IO進(jìn)程線(xiàn)程day4作業(yè)

    代碼: 運(yùn)行結(jié)果: ?

    2024年02月21日
    瀏覽(20)
  • Linux下基本指令 -> ls指令 查看目錄結(jié)構(gòu)和文件信息

    Linux下基本指令 -> ls指令 查看目錄結(jié)構(gòu)和文件信息

    ? ?博主: 星塵不會(huì)落 ?博主主頁(yè):https://blog.csdn.net/zhanghgh ?如果編寫(xiě)的博客中有任何錯(cuò)誤,請(qǐng)指出,我會(huì)第一時(shí)間核實(shí)并更改。 ?該博客可能會(huì)隨著博主的技術(shù)增進(jìn)而改進(jìn)。 ?Linux ls(英文全拼: list directory contents )命令用于顯示指定工作目錄下之內(nèi)容(列出目前工作

    2024年02月07日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包