stat函数百度百科_strel函数

stat函数百度百科_strel函数stat函数的简单使用stat函数是用来获取文件的各种属性的一个linux下的常用API函数。函数原型为intstat(constchar*path,structstat*buf);stat定义如下:structstat{dev_tst_dev;//文件的设备编号ino_tst_ino;//节点mode_tst_m…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

stat 函数的简单使用

stat 函数是用来获取文件的各种属性的一个linux下的常用API函数。
函数原型为int stat(const char* path,struct stat* buf);
stat定义如下:

struct stat {
    dev_t   st_dev; //文件的设备编号
    ino_t   st_ino; //节点
    mode_t  st_mode;//文件的类型和存取的权限
    nlink_t st_nlink;//连接到该文件的硬链接数目,刚建立的文件值为1
    uid_t   st_uid;//用户的ID
    gid_t   st_gid;//组ID
    dev_t   st_rdev;//(设备类型)若此文件为设备文件,则其为设备的编号
    off_t   st_size;//文件字节数(文件大小)
    blksize_t   st_blksize;//块大小(文件系统的I/O缓存区大小)
    blkcnt_t    st_blocks;//块数
    time_t      st_atime;//最后一次访问时间
    time_t      st_mtime;//最后一次修改时间
    time_t      st_ctime;//最后一次改变时间(指属性)
};

st_mode 的定义 –16位整数

0-2--其他人权限(8进制)
S_IROTH  00004 读权限
S_IWOTH  00002 写权限
S_IXOTH  00001 执行权限
S_IRWXO  00007 掩码

3-5--所属组权限
S_IRGRP  00040 读权限
S_IWGRP  00020 写权限
S_IXGRP  00010 执行权限
S_IRWXG  00070 掩码

6-8--文件所有者权限
S_IRUSR  00400  读权限
S_IWUSR  00200  写权限
S_IXUSR  00100  执行权限
S_IRWXU  00700  掩码


12-15--文件类型
S_IFSOCK 0140000 套接字
S_IFLNK  0120000 符号链接(软连接)
S_IFREG  0100000 普通文件
S_IFBLK  0060000 块设备
S_IFDIR  0040000 目录
S_IFCHR  0020000 字符设备
S_IFIFO  0010000 管道

S_IFMT 掩码,用来过滤文件类型

statdemo.c

#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
#include <grp.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <sys/sysmacros.h>

int main(int argc,char* argv[])
{
        struct stat st;
        if(argc != 2)
            {
                fprintf(stderr,"Usage: %s <pathname>\n",argv[0]);
            exit(EXIT_FAILURE);
        }
    if(stat(argv[1],&st) == -1)
        {
            perror("stat");
            exit(EXIT_FAILURE);
        }

    printf("主设备号为:%lx,次设备号为%lx\n",(long) major(st.st_dev)),(long) minor(st.st_dev);

           printf("文件类型为:");

    switch(st.st_mode & S_IFMT) {
            case S_IFBLK: printf("设备文件\n");     break;
            case S_IFCHR: printf("字符设备\n");     break;
            case S_IFDIR: printf("目录\n");         break;
            case S_IFIFO: printf("管道文件\n");     break;
            case S_IFLNK: printf("软连接文件\n");   break;
            case S_IFREG: printf("普通文件\n");     break;
            case S_IFSOCK: printf("套接字文件\n");  break;
            default: printf("未知文件\n");          break;
    }

    printf("节点号为 %ld\n", (long) st.st_ino);
    printf("文件权限为: %lo (octal)\n",(unsigned long) st.st_mode);
    printf("链接数为: %ld\n", (long) st.st_nlink);
    printf("所有者: 用户为:%s, 组为:%s\n",getpwuid(st.st_uid)->pw_name,getgrgid(st.st_gid)->gr_name);
    printf("I/O缓存区大小为:%ld",(long) st.st_blksize);
    printf("文件大小为:%lld 字节\n",(long long) st.st_size);
    printf("块数为:%lld字节\n",(long long) st.st_blocks);
    printf("最后一次文件属性改变时间: %s",ctime(&st.st_ctime));
    printf("最后一次修改时间: %s",ctime(&st.st_mtime));
    printf("最后一次访问时间: %s",ctime(&st.st_atime));

    return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171782.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月21日 上午10:16
下一篇 2022年8月21日 上午10:36


相关推荐

  • jstat使用_jvm常用命令

    jstat使用_jvm常用命令如何判断JVM是否存在内存问题呢?判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为它主要监控的是总体的系统资源,很难定位到java应用程序。Jstat是JDK自带的一个轻量级小工具。全称“JavaVirtualMachinestatisticsmonitoringtool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能…

    2025年10月31日
    5
  • Idea激活码最新教程2018.1.7版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2018.1.7版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2018 1 7 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2018 1 7 成功激活

    2025年5月24日
    6
  • silverlight开发_net网站例子

    silverlight开发_net网站例子http://money.finance.sina.com.cn/silverlight/Sina财经Silverlight4.0版http://vip.stock.finance.sina.com.cn/silverpulsehttp://pjd.mscui.net/default.htmhttp://www.silverlight.net 学习网站:http:/

    2022年10月10日
    7
  • (转)IIS中防盗链原理

    (转)IIS中防盗链原理转自:http://www.58tt.com/article/system/web/20091125/4882.html 首先笔者要说的是“盗链”很常见的现象,虽然没有采集那么“流行”,但是对于被盗者来说,碰到这事还真的及时解决,要不资源的消耗很可能会影响自身网站的正常运营。那究竟什么是盗链,怎样防止网站的信息被盗链呢?下面简单的说下:“盗链”的定义是:此内容不在自己服务器上,而通过技

    2022年7月23日
    6
  • trylock 用法_Java lock

    trylock 用法_Java lock在并发编程中,为了避免多线程同时读写共享资源,我们需要互斥。Go标准库提供了互斥锁sync.Mutex,通过加锁Lock()方法和解锁Unlock()方法达到对共享资源的并发控制。在之前的设计中,当锁被占有,其他goroutine尝试获取锁时会被阻塞。这种方式当然是合理的,但是在某些情况下,或许我们希望在获取锁失败时,并不想停止执行,而是可以进入其他的逻…

    2022年10月10日
    6
  • sql 时间转字符串_字符串举例

    sql 时间转字符串_字符串举例一、日期时间类型转换为字符串:SelectCONVERT(varchar(100),GETDATE(),0):052020213:47PMSelectCONVERT(varchar(100),GETDATE(),1):05/20/21SelectCONVERT(varchar(100),GETDATE(),2):21.05.20SelectCONVERT(varchar(100),GETDATE(),3):20/05/21SelectCONVERT(var

    2022年10月8日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号