stat函数讲解_strcat函数

stat函数讲解_strcat函数stat函数讲解表头文件:   #include<sys/stat.h>            #include<unistd.h>定义函数:   intstat(constchar*file_name,structstat*buf);函数说明:  &nbs

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

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

stat函数讲解

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

错误代码:
ENOENT 参数file_name指定的文件不存在
ENOTDIR 路径中的目录存在但却非真正的目录
ELOOP 欲打开的文件有过多符号连接问题,上限为16符号连接
EFAULT 参数buf为无效指针,指向无法存在的内存空间
EACCESS 存取文件时被拒绝
ENOMEM 核心内存不足
ENAMETOOLONG 参数file_name的路径名称太长

#include <sys/stat.h>的作用

#include <sys/stat.h>

文件状态,
是unix/linux系统定义文件状态所在的伪标准头文件。
含有类型与函数:
dev_t st_dev Device ID of device containing file.
ino_t st_ino File serial number.
mode_t st_mode Mode of file (see below).
nlink_t st_nlink Number of hard links to the file.
uid_t st_uid User ID of file.
gid_t st_gid Group ID of file.
dev_t st_rdev Device ID (if file is character or block special).
off_t st_size For regular files, the file size in bytes.
For symbolic links, the length in bytes of the
pathname contained in the symbolic link.

                               For a shared memory object, the length in bytes.

                               For a typed memory object, the length in bytes.

                               For other file types, the use of this field is
                               unspecified.
          time_t    st_atime   Time of last access.
          time_t    st_mtime   Time of last data modification.
          time_t    st_ctime   Time of last status change.
          int    chmod(const char *, mode_t);

          int    fchmod(int, mode_t);
          int    fstat(int, struct stat *);
          int    lstat(const char *restrict, struct stat *restrict);
          int    mkdir(const char *, mode_t);
          int    mkfifo(const char *, mode_t);
          int    mknod(const char *, mode_t, dev_t);
          int    stat(const char *restrict, struct stat *restrict);
          mode_t umask(mode_t);

使用stat函数最多的可能是ls-l命令,用其可以获得有关一个文件的所有信息。
一般头文件在/usr/include下面,这里是标准C程序头文件,如果你的头文件前加了 <sys/*>,那说明这是系统调用函数头文件,其在/usr/include/sys下面。

函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。函数原型#include <sys/stat.h>

int stat(const char *restrict pathname, struct stat *restrict buf);提供文件名字,获取文件对应属性。
int fstat(int filedes, struct stat *buf);通过文件描述符获取文件对应的属性。
int lstat(const char *restrict pathname, struct stat *restrict buf);连接文件描述命,获取文件属性。
文件对应的属性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; //伟建内容对应的块数量
};
示例:
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>

int main() {

struct stat buf;
stat(“/etc/hosts”, &buf);
printf(“/etc/hosts file size = %d\n”, buf.st_size);
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AWE2017今日召开 智能家居发展势头强劲

    AWE2017今日召开 智能家居发展势头强劲

    2022年3月4日
    41
  • 1024程序员节由来(1024程序员节宣言)

    曾经,在许多人的心中,程序员应该是这样的:画像格子衬衫不善言辞无女友电脑包常年加班但是呢,他们还有哪些不为人知的一面:1代码的好基友bug的大克星程序员的日常活动是什么呢?他们在食堂敲代码;他们在书店敲代码;他们在咖啡厅敲代码;他们甚至在斑马线上敲代码……他们的喜怒哀乐也很简单:一大串SQL语句,居然一下就成功时:(不敢相信)当代码没有正常执行,却不知道原因时…

    2022年4月16日
    45
  • Fisher Information学习笔记

    Fisher Information学习笔记FisherInfomation的意义FisherInformation顾名思义,就是用来衡量样本数据的信息量的,通常我们有一组样本,我们在机器学习中需要估计出样本的分布,我们是利用样本所具有的信息量来估计参数的,样本中具有的信息量越多,估计的参数越准,样本的分布估计的就越接近真实分布,这里的信息量就是用FisherInformation来表示的。什么样本信息量比较大?我们用样本发生的概率来

    2022年9月18日
    3
  • socket粘包解决方案_socket 传输文件

    socket粘包解决方案_socket 传输文件一 .两个简单概念长连接与短连接:1.长连接   Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接   Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.二 ….

    2022年8月18日
    7
  • fastadmin 自定义搜索

    fastadmin 自定义搜索PHP代码$offset=input(‘offset’);$limit=input(‘limit’);//获取搜索框的值$filter=input(‘filter’);if($filter){$filter=urldecode($filter);$filter=json_decode($filter,TRUE);foreach($filteras$k=>$v){$where[$k]=[‘like’,”%{$v}%”];}.

    2022年7月13日
    87
  • 二次开发mysql数据反推_Discuz二次开发之数据库操作

    二次开发mysql数据反推_Discuz二次开发之数据库操作一、discuz数据操作之查:1、fetch_allDB::fetch_all(sql,$arg=array());//取出符合条件的所有数据sql为查询语句,$arg为绑定参数例:$result=DB::fetch_all(‘SELECT*FROM%t’,array(‘table_name’));$result为二维数组2、fetch_firstDB::fetch_first(s…

    2022年5月19日
    34

发表回复

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

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