stat函数(概念+代码)

说明

描述

        

 

代码

#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/sysmacros.h>
#include <time.h>

int main(int argc, const char *argv[])
{
    struct stat st; // 一个长方形内存
    int retval;

    if (argc <= 1)
    {
        printf("参数太少了 老铁!");
    }

    retval = stat(argv[1], &st); // 长方形丢进去 写上内容

    if (retval == -1)
    {
        printf("出错了!\n");
        return 0;
    }
    // 查看文件属性
    switch (st.st_mode & S_IFMT)
    {
    case S_IFSOCK:
        printf("这是个套接字文件\n");
        break;
    case S_IFREG:
        printf("这是个普通文件\n");
        break;
    case S_IFLNK:
        printf("这是个软连接文件\n");
        break;
    case S_IFBLK:
        printf("这是个块文件\n");
        break;
    case S_IFCHR:
        printf("这是个字符文件\n");
        break;
    case S_IFDIR:
        printf("这是个目录文件\n");
        break;
    case S_IFIFO:
        printf("这是个管道文件\n");
        break;
    }

    printf("文件结点号: %lu\n", st.st_ino); // 1. 文件节点

    printf("reg设备号:\t主: %d\t从: %d\n", major(st.st_dev), minor(st.st_dev));   // 2. 文件设备号 主 从 一分为二
    printf("raw设备号:\t主: %d\t从: %d\n", major(st.st_rdev), minor(st.st_rdev)); // 2. 文件设备号 主 从 一分为二

    printf("文件大小: %lu\n", st.st_size); // 3. 文件大小size

    printf("文件块大小: %lu\n", st.st_blksize); // 4. 文件块大小blksize

    printf("文件块数: %lu\n", st.st_blocks); // 5. 文件块数blocks

    printf("访问时间(ctime函数自动补\\n): %s", ctime((time_t *)&st.st_atim)); // 5. 访问时间acess time

    printf("修改时间(ctime函数自动补\\n): %s", ctime((time_t *)&st.st_mtim)); // 6. 修改时间manage time

    printf("创建时间(ctime函数自动补\\n): %s", ctime((time_t *)&st.st_ctim)); // 7. 创建时间create time

    return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值