精华内容
下载资源
问答
  • 主要介绍了linux stat函数讲解(整理),非常不错,具有参考借鉴价值,需要的朋友可以参考下
  • stat函数和stat命令 linux文件里的【inode = index node】解释:要理解inode必须了解磁盘和【目录项】,inode实际是连接【目录项】和磁盘的中间物质。 图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在磁盘...
  • stat函数

    2021-10-04 13:50:07
    stat   函数原型如下: #include <sys/stat.h> int stat ( const char *filename, struct stat *buf ); 该函数将filename的文件属性信息存储在buf指向的结构体中。如果函数执行成功,则返回值为0,失败则...

    文章目录

    stat

      函数原型如下:

    #include <sys/stat.h>
    int stat ( const char *filename, struct stat *buf );
    

    该函数将filename的文件属性信息存储在buf指向的结构体中。如果函数执行成功,则返回值为0,失败则返回-1
      如果filename是一个符号链接,那么buf指向的结构体将存储该链接指向的文件的属性信息。

    #include <sys/stat.h>
    #include <unistd.h>
    #include "stdio.h"
    
    int main() {
        struct stat buf;
        stat ( "/etc/passwd", &buf );
        printf ( "/etc/passwd file size = %ld\n", buf.st_size );
    }
    

    fstat

      函数原型如下:

    #include <sys/stat.h>
    int fstat ( int filedes, struct stat *buf );
    

    该函数与stat类似,区别是使用文件描述符filedes来代替文件名。如果函数执行成功,则返回值为0,失败则返回-1

    lstat

      函数原型如下:

    #include <sys/stat.h>
    int lstat ( const char *filename, struct stat *buf );
    

    该函数与stat函数类似,如果filename是一个符号链接,则返回该链接符号的属性信息。

    展开全文
  • stat函数详解

    万次阅读 多人点赞 2018-09-20 16:24:44
    stat函数 ​ 作用:获取文件信息 ​ 头文件:include &lt;sys/types.h&gt; #include &lt;sys/stat.h&gt; #include &lt;unistd.h&gt; ​ 函数原型:int stat(const char *path, ...

    Linux系统函数之文件系统管理(二)

    stat函数

    作用:获取文件信息

    头文件include <sys/types.h> #include <sys/stat.h> #include <unistd.h>

    函数原型int stat(const char *path, struct stat *buf)

    ​ 返回值:成功返回0,失败返回-1;

    ​ 参数:文件路径(名),struct stat 类型的结构体

    struct stat 结构体详解:

    struct stat
    {
        dev_t     st_dev;     /* ID of device containing file */文件使用的设备号
        ino_t     st_ino;     /* inode number */    索引节点号 
        mode_t    st_mode;    /* protection */  文件对应的模式,文件,目录等
        nlink_t   st_nlink;   /* number of hard links */    文件的硬连接数  
        uid_t     st_uid;     /* user ID of owner */    所有者用户识别号
        gid_t     st_gid;     /* group ID of owner */   组识别号  
        dev_t     st_rdev;    /* device ID (if special file) */ 设备文件的设备号
        off_t     st_size;    /* total size, in bytes */ 以字节为单位的文件容量   
        blksize_t st_blksize; /* blocksize for file system I/O */ 包含该文件的磁盘块的大小   
        blkcnt_t  st_blocks;  /* number of 512B blocks allocated */ 该文件所占的磁盘块  
        time_t    st_atime;   /* time of last access */ 最后一次访问该文件的时间   
        time_t    st_mtime;   /* time of last modification */ /最后一次修改该文件的时间   
        time_t    st_ctime;   /* time of last status change */ 最后一次改变该文件状态的时间   
    };

    stat结构体中的st_mode 则定义了下列数种情况:

        S_IFMT   0170000    文件类型的位遮罩
        S_IFSOCK 0140000    套接字
        S_IFLNK 0120000     符号连接
        S_IFREG 0100000     一般文件
        S_IFBLK 0060000     区块装置
        S_IFDIR 0040000     目录
        S_IFCHR 0020000     字符装置
        S_IFIFO 0010000     先进先出
    ​
        S_ISUID 04000     文件的(set user-id on execution)位
        S_ISGID 02000     文件的(set group-id on execution)位
        S_ISVTX 01000     文件的sticky位
    ​
        S_IRUSR(S_IREAD) 00400     文件所有者具可读取权限
        S_IWUSR(S_IWRITE)00200     文件所有者具可写入权限
        S_IXUSR(S_IEXEC) 00100     文件所有者具可执行权限
    ​
        S_IRGRP 00040             用户组具可读取权限
        S_IWGRP 00020             用户组具可写入权限
        S_IXGRP 00010             用户组具可执行权限
    ​
        S_IROTH 00004             其他用户具可读取权限
        S_IWOTH 00002             其他用户具可写入权限
        S_IXOTH 00001             其他用户具可执行权限
    ​
        上述的文件类型在POSIX中定义了检查这些类型的宏定义:
        S_ISLNK (st_mode)    判断是否为符号连接
        S_ISREG (st_mode)    是否为一般文件
        S_ISDIR (st_mode)    是否为目录
        S_ISCHR (st_mode)    是否为字符装置文件
        S_ISBLK (s3e)        是否为先进先出
        S_ISSOCK (st_mode)   是否为socket
        若一目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来删除或改名,在linux中,最典型的就是这个/tmp目录啦。
    ​

    st_mode 的结构

    st_mode 主要包含了 3 部分信息:

    • 15-12 位保存文件类型

    • 11-9 位保存执行文件时设置的信息

    • 8-0 位保存文件访问权限

    展开全文
  • stat 函数详解

    2019-11-24 21:12:46
    stat函数 作用:获取文件信息 头文件:include <sys/types.h> #include <sys/stat.h> #include <unistd.h> ​函数原型:int stat(const char *path, struct stat *buf) ​返回值:成功返回0,...

    stat函数

    作用:获取文件信息
    
    头文件:include <sys/types.h> #include <sys/stat.h> #include <unistd.h>
    
    ​函数原型:int stat(const char *path, struct stat *buf)
    
    ​返回值:成功返回0,失败返回-1;
    
    ​参数:文件路径(名),struct stat 类型的结构体
    

    struct stat 结构体详解:

    struct stat {
        dev_t     st_dev;     /* ID of device containing file */文件使用的设备号
        ino_t     st_ino;     /* inode number */    索引节点号 
        mode_t    st_mode;    /* protection */  文件对应的模式,文件,目录等
        nlink_t   st_nlink;   /* number of hard links */    文件的硬连接数  
        uid_t     st_uid;     /* user ID of owner */    所有者用户识别号
        gid_t     st_gid;     /* group ID of owner */   组识别号  
        dev_t     st_rdev;    /* device ID (if special file) */ 设备文件的设备号
        off_t     st_size;    /* total size, in bytes */ 以字节为单位的文件容量   
        blksize_t st_blksize; /* blocksize for file system I/O */ 包含该文件的磁盘块的大小   
        blkcnt_t  st_blocks;  /* number of 512B blocks allocated */ 该文件所占的磁盘块  
        time_t    st_atime;   /* time of last access */ 最后一次访问该文件的时间   
        time_t    st_mtime;   /* time of last modification */ /最后一次修改该文件的时间   
        time_t    st_ctime;   /* time of last status change */ 最后一次改变该文件状态的时间   
    };
    

    stat结构体中的st_mode 则定义了下列数种情况:

    
        S_IFMT   0170000    文件类型的位遮罩
        S_IFSOCK 0140000    套接字
        S_IFLNK 0120000     符号连接
        S_IFREG 0100000     一般文件
        S_IFBLK 0060000     区块装置
        S_IFDIR 0040000     目录
        S_IFCHR 0020000     字符装置
        S_IFIFO 0010000     先进先出
    ​
        S_ISUID 04000     文件的(set user-id on execution)位
        S_ISGID 02000     文件的(set group-id on execution)位
        S_ISVTX 01000     文件的sticky位
    ​
        S_IRUSR(S_IREAD) 00400     文件所有者具可读取权限
        S_IWUSR(S_IWRITE)00200     文件所有者具可写入权限
        S_IXUSR(S_IEXEC) 00100     文件所有者具可执行权限
    ​
        S_IRGRP 00040             用户组具可读取权限
        S_IWGRP 00020             用户组具可写入权限
        S_IXGRP 00010             用户组具可执行权限
    ​
        S_IROTH 00004             其他用户具可读取权限
        S_IWOTH 00002             其他用户具可写入权限
        S_IXOTH 00001             其他用户具可执行权限
    ​
        上述的文件类型在POSIX中定义了检查这些类型的宏定义:
        S_ISLNK (st_mode)    判断是否为符号连接
        S_ISREG (st_mode)    是否为一般文件
        S_ISDIR (st_mode)    是否为目录
        S_ISCHR (st_mode)    是否为字符装置文件
        S_ISBLK (s3e)        是否为先进先出
        S_ISSOCK (st_mode)   是否为socket
        若一目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者
        此目录所有者或root来删除或改名,在linux中,最典型的就是这个/tmp目录啦。
    

    st_mode 主要包含了 3 部分信息:

    • 15-12 位保存文件类型

    • 11-9 位保存执行文件时设置的信息

    • 8-0 位保存文件访问权限

    展开全文
  • stat函数的使用说明

    2020-10-24 23:04:21
    1:stat函数 取得指定文件的文件属性,文件属性存储在结构体stat里 #include <sys/stat.h> int stat(const char *pathname, struct stat *statbuf); 2:结构体stat struct stat { dev_t st_dev; /* ID of ...

    1:stat函数

    取得指定文件的文件属性,文件属性存储在结构体stat里

    #include <sys/stat.h>
    int stat(const char *pathname, struct stat *statbuf);
    

    2:结构体stat

    struct stat {
                   dev_t     st_dev;         /* ID of device containing file */
                   ino_t     st_ino;         /* Inode number */
                   mode_t    st_mode;        /* File type and mode */
                   nlink_t   st_nlink;       /* Number of hard links */
                   uid_t     st_uid;         /* User ID of owner */
                   gid_t     st_gid;         /* Group ID of owner */
                   dev_t     st_rdev;        /* Device ID (if special file) */
                   off_t     st_size;        /* Total size, in bytes */
                   blksize_t st_blksize;     /* Block size for filesystem I/O */
                   blkcnt_t  st_blocks;      /* Number of 512B blocks allocated */
    
                   /* Since Linux 2.6, the kernel supports nanosecond
                      precision for the following timestamp fields.
                      For the details before Linux 2.6, see NOTES. */
    
                   struct timespec st_atim;  /* Time of last access */
                   struct timespec st_mtim;  /* Time of last modification */
                   struct timespec st_ctim;  /* Time of last status change */
    
               #define st_atime st_atim.tv_sec      /* Backward compatibility */
               #define st_mtime st_mtim.tv_sec
               #define st_ctime st_ctim.tv_sec
               };
    

    st_dev:设备ID,不太常用

    st_ino:【inode】,【inode】是啥?不知道就看上面关于【inode】的解释

    st_mode:文件的类型和权限,共16位,如下图。

    0-11位控制文件的权限

    12-15位控制文件的类型

    0-2比特位:其他用户权限

    3-5比特位:组用户权限

    6-8比特位:本用户权限

    9-11比特位:特殊权限

    12-15比特位:文件类型(因为文件类型只有7中,所以用12-14位就够

    文件类型的宏如下(下面的数字是8进制):

    S_IFSOCK 0140000 socket
    S_IFLNK 0120000 symbolic link(软连接)
    S_IFREG 0100000 regular file(普通文件)
    S_IFBLK 0060000 block device(块设备文件)
    S_IFDIR 0040000 directory(目录)
    S_IFCHR 0020000 character device(字符设备文件)
    S_IFIFO 0010000 FIFO(管道)
    st_nlink:硬连接计数

    st_uid:这个文件所属用户的ID

    st_gid:这个文件所属用户的组ID

    st_rdev:特殊设备的ID,不太常用

    st_size:文件的大小

    st_blksize:不明是干啥的

    st_blocks:不明是干啥的

    struct timespec st_atim:最后访问的时间

    struct timespec st_mtim:最后修改的时间

    struct timespec st_ctim:最后状态改变的时间

    3:示例

    /*************************************************************************
        > File Name: stat.c
        > Author: kayshi
        > Mail: kayshi2019@qq.com
        > Created Time: Sat 17 Oct 2020 04:13:17 PM CST
     ************************************************************************/
    
    #include <stdio.h>
    #include <sys/stat.h>
    
    #define FILE_N "/home/kayshi/code/Test/test.txt"
    
    void main(void)
    {
        struct stat file_stat;
    
        stat(FILE_N, &file_stat);
        printf("%ld", file_stat.st_size);
    }
    
    

    获得文件text.txt的大小

    展开全文
  • C语言 stat 函数

    2019-10-07 17:46:36
    C语言 stat 函数stat头文件: #include<sys/stat.h> #include<unistd.h>...**函数说明:**stat函数获取file_name指向文件的文件状态,并将文件信息保存到结构体buf中,执行成功返回0,失...
  • stat函数和stat命令 linux文件里的【inode = index node】解释:要理解inode必须了解磁盘和【目录项】,inode实际是连接【目录项】和磁盘的中间物质。 图里的大圈代表硬件的磁盘,里面的小圈代表某个文件存储在...
  • stat函数的用法

    万次阅读 2016-11-29 10:55:38
    stat函数讲解(转)   表头文件: #include  #include 定义函数: int stat(const char *file_name, struct stat *buf); 函数说明: 通过文件名filename获取文件信息,并保存在buf所指...
  • stat函数(stat、fstat、lstat)

    千次阅读 2019-03-20 18:26:33
    #include <sys/types.h> #include <sys/stat.h>...int stat(const char *path, struct stat *buf); 第一个形参:指出文件(文件路径); 第二个形参:出参数(函数对该参数操作,然后...
  • stat函数 函数常用的定义: #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *path, struct stat *buf); 第一个参数是文件名,第二个参数是stat的...
  • linux中stat函数和使用方法

    千次阅读 2018-10-12 19:31:05
    stat 函数讲解 表头文件: #include &amp;lt;sys/stat.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; 定义函数: int stat(const char *file_name, struct stat *buf); 函数说明: 通过文件名...
  • linux C之stat函数

    千次阅读 2018-03-29 11:41:54
    之前写过一篇关于stat命令的博客,介绍了stat命令的使用和输出信息表示,今天又见到了stat函数,因为输出原因,准备整理一下。 stat函数介绍   根据《UNIX环境高级编程》中对于stat函数的解释,stat函数和...
  • 12-stat 函数

    千次阅读 2016-11-28 10:50:30
    在 linux 中,经常需要获取文件的属性,比如修改时间,文件大小等等。stat 函数将会帮助我们得到这些信息。
  • St_mode函数 S_IFMT 0170000 文件类型的位 S_IFSOCK 0140000 socket S_IFLNK 0120000 符号链接(symbolic link) S_IFREG 0100000 一般文件 S_IFBLK 0060000 区块装置(block device) S_IFDIR
  • linux C函数之stat函数

    2016-12-28 21:12:46
    1.函数功能:通过文件名filename获取文件信息,并保存在buf所指的结构体stat中。2.函数原型函数头文件#include <sys/stat.h> #include <unistd.h> 函数int stat(const char *file_name, struct stat *buf ) 返回值...
  • struct _stat64 state; int res = _stat64("420.yuv", &state); //file size more than 2G if (res < 0) { switch (errno) { case ENOENT: printf("File %s not found.\n", "420.yuv"); break; ...
  • 前面我们初步认识了stat这个函数,并用它学会了查看文件的大小:linux 用stat 函数来查看文件大小; 现在我们来再看看stat 结构体中的st_mode 成员,st_mode 其实是2byte的16bit的数,下面是用八进制表示的st_mode ...
  • 函数原型:int stat(const char * file_name,struct stat *buf); stat()用来将参数file_name所指的文件状态, 复制到参数buf所指的结构中 const char:表示文件路径 struct stat*buf: 表示声明的结构体 1 struct ...
  • 1. stat函数   stat函数是用于获取文件信息,比如文件权限,文件类型信息等等。 函数原型: #include &amp;amp;amp;amp;amp;amp;amp;lt;sys/types.h&amp;amp;amp;amp;amp;amp;amp;gt; #include &...
  • stat函数的使用和遇到的坑

    千次阅读 2019-03-14 14:43:53
    stat函数的使用 stat(const char *restrict path, struct stat *restrict buf) 说明:其中path变量不能只是当前目录下的文件名,那样会出现未找到文件或者目录的错误,应该是文件的绝对路径, 并将转化后的信息放到...
  • 文件操作(stat函数

    2019-10-05 09:51:14
    stat函数可以获取文件信息 /*** stat.c ***/ #include<stdio.h> #include<string.h> #include<sys/stat.h> #include<stdlib.h> int main() { struct stat st = {0}; //...
  • stat 函数解析

    2018-02-11 23:24:31
    stat 函数的简单使用 stat 函数是用来获取文件的各种属性的一个linux下的常用API函数函数原型为int stat(const char* path,struct stat* buf); stat定义如下: struct stat { dev_t st_dev; //文件的设备...
  • size_t filesize(const char* file_name) { size_t filesize = _maxFileSize+1;... struct stat statbuff; if(stat(file_name, &statbuff) == 0) { filesize = statbuff.st_size; } }...
  • 各位,我打算用stat里面的st-size 函数获取文件的大小,但是怎么调试得到的值就是0. ``` int main (void) { char *fileName = "abcd.txt"; SM_FileHandle fh; createPageFile(fileName); openPageFile ...
  • 在进行C语言学习的时候我们了解到了C语言相关的一些IO操作,如fopen,fwrite,fread,fprintf,fclose等相关函数,他们都是由C库函数提供的一些函数,是将操作系统的系统调用加以封装,虽说Linux是由C语言实现的,...
  • 1、stat主要函数 #include &lt;sys/types.h&gt; #include &lt;sys/stat.h&gt; #include &lt;unistd.h&gt; int stat(const char *path, struct stat *buf); //在Linux中,可以利用stat()...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 115,338
精华内容 46,135
关键字:

stat函数