linux stat系统调用,获取文件信息。

stat 函数原型:

int stat(const char *path, struct stat *buf);

struct stat 说明

struct stat {
        mode_t     st_mode;       //文件对应的模式,文件,目录等
        ino_t      st_ino;       //inode节点号
        dev_t      st_dev;        //设备号码
        dev_t      st_rdev;       //特殊设备号码
        nlink_t    st_nlink;      //文件的连接数
        uid_t      st_uid;        //文件所有者
        gid_t      st_gid;        //文件所有者对应的组
        off_t      st_size;       //普通文件,对应的文件字节数
        time_t     st_atime;      //文件最后被访问的时间
        time_t     st_mtime;      //文件内容最后被修改的时间
        time_t     st_ctime;      //文件状态改变时间
        blksize_t st_blksize;    //文件内容对应的块大小
        blkcnt_t   st_blocks;     //伟建内容对应的块数量
};

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

 S_IFMT   0170000    文件类型的位遮罩
    S_IFSOCK 0140000    scoket
    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

示例程序:

获取文件的大小。

int main(){

    struct stat m_stat;
    stat("./a.txt",&m_stat);

    printf("%ld\n",m_stat.st_size);
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 15:14:31

linux stat系统调用,获取文件信息。的相关文章

【转】linux C++ 获取文件信息 stat函数详解

stat函数讲解 表头文件:    #include <sys/stat.h>             #include <unistd.h>定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:      执行成功则返回0,失败返回-1,错误代码存于errno 错误代码:    ENOENT         参数fi

Linux获取文件信息

项目中需要对文件进行处理并分析,首先需要根据要求找到该文件,比如最后修改的文件 代码实现: 1 #include <unistd.h> 2 #include <sys/stat.h> 3 #include <time.h> 4 5 #include <iostream> 6 7 using namespace std; 8 9 int main(int argc, char **argv) 10 { 11 struct stat STFile; 12 sta

第九篇:使用 lstat 函数获取文件信息

前言 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记.但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等.如果要获取这些信息,则使用函数 lstat 可以轻松达到这个目的. 下面的程序将使用该函数获取文件类型信息并判断它的类型. 但在这之前,先要说明文件信息结构体和文件类型判定宏. 文件信息结构体 调用 lstat 函数将会把指定文件的信息存放到 stat 结构体中,这个结构体的定义大致如下: 文件类型判定宏 文件结构体中的文件类型字段是一个整数,对此,可以使用

stat()函数--------------获取文件信息

stat():用于获取文件的状态信息,使用时需要包含<sys/stat.h>头文件. 函数原型:int stat(const char *path, struct stat *buf): 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_nli

HttpWebRequest / HttpWebResponse 远程获取文件信息

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(path+filename); //创建一个请求(获得需要的文件信息) HttpWebResponse myRes = (HttpWebResponse)myReq.GetResponse(); string gorlseftDate = myRes.LastModified.ToString("yyyy-MM-dd hh:mm:ss");//获得dataServer.ra

【转】windows c++获取文件信息——_stat函数的使用

_stat函数的功能 _stat函数用来获取指定路径的文件或者文件夹的信息. 函数声明 int _stat( const char *path, struct _stat *buffer ); 参数: path——文件或者文件夹的路径 buffer——获取的信息保存在内存中 返回值: 正确——返回0 错误——返回-1,具体错误码保存在errno中 struct _stat结构体 _stat结构体是文件(夹)信息的结构体,定义如下: struct stat { _dev_t st_dev; //文

Linux C 程序 获取目录信息(16)

4.获取当前目录getcwd 会将当前工作目录绝对路径复制到参数buf所指的内存空间5.设置工作目录chdir6.获取目录信息opendir打开一个目录readdir读取目录中的内容  读取目录项信息,返回一个struct dirent结构指针closedir关闭一个打开的目录 实现ls命令 -l -a实现流程:    1.获取该目录下文件总数和最长文件名    2.获取该目录下的所有文件名,存放filenames中    3.使用冒泡法对文件进行按字母排序,排序后存于filename中    

php 获取文件信息相关基础函数

<?phpheader('content-type:text/html;charset=utf-8');date_default_timezone_set('PRC');/** * 文件信息相关API */$filename="./test1.txt";// $filename="test";//filetype($filename):获取文件的类型,返回的是文件的类型echo '文件类型为:',filetype($filename),'<br/>

node 的fs.state 获取文件信息

1. fs.stat()可以获取文件的信息,用法如下: const fs = require('fs'); fs.stat('./book.js',(err,stats)=>{ if(err) throw err; // 可以利用此处判断文件是否存在,不存在会报err. console.log(stats.isFIle())//判断是否为文件 console.log(stats.isDirectory())//判断是否为文件夹 console.log(stats) //打印文件相关信息 }) 原