stat实现

#include<stdio.h>
#include<time.h>
#include<sys/stat.h>
#include<unistd.h>
#include<sys/types.h>
#include<errno.h>
#include<stdlib.h>
 
int main(int argc, char **argv)
{
    struct stat buf;
    if(argc!=2)
    {
        perror("Usage:my_stat <filename>\n");
        exit(1);
    }

    if( stat(argv[1], &buf) ==-1 )
    {
        perror("stat:");
        exit(1);
    }
 
    
    printf("设备 %d\n",buf.st_dev);//文件设备编号
    printf("文件大小: %d I/O: %d\n",buf.st_size,buf.st_blksize);//文件大小,以字节计算
    printf("块个数: %d Inode : %d\n",buf.st_blocks,buf.st_ino);//占有文件区块个数,一般一个区块大小通常512字节
    printf("mode: %o 硬链接: %d\n",buf.st_mode,buf.st_nlink);//文件类型与存取权限
    printf("UID : %d GID: %d\n",buf.st_uid,buf.st_gid);//用户所有者的用户id
    printf("最近访问: %s",ctime(&buf.st_atime));//文件最近一次被访问时间
    printf("最近更改: %s",ctime(&buf.st_mtime));//最后一次被修改的时间
 
    return 0;
}
posted @ 2022-10-14 20:32  20201303张奕博  阅读(18)  评论(0编辑  收藏  举报