Linux 应用编程之stat 函数

Linux 应用编程之stat 函数#include<sys/types.h>#include<sys/stat.h>#include<unistd.h>intstat(constchar*pathname,structstat*buf);pathname:用于指定一个需要查看属性的文件路径。buf:structstat类型指针,用于指向一个structstat结构体变量。调用stat函数的时候需要传入一个structstat变量的指针,获取到的文件..

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

Jetbrains全家桶1年46,售后保障稳定

Linux
下可以使用
stat
命令查看文件的属性,其实这个命令内部就是通过调用
stat()
函数来获取文件属性的,stat
函数是
Linux 中的系统调用,用于获取文件相关的信息。(可通过”man 2 stat”命令查看):
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int stat(const char *pathname, struct stat *buf);

Jetbrains全家桶1年46,售后保障稳定

pathname

用于指定一个需要查看属性的文件路径。
buf

struct stat
类型指针,用于指向一个
struct stat
结构体变量。调用
stat
函数的时候需要传入一个
struct stat 变量的指针,获取到的文件属性信息就记录在
struct stat
结构体中
返回值:
成功返回
0
;失败返回
-1
,并设置
error

 

示例代码:
获取文件的 inode 节点编号以及文件大小,并将它们打印出来。

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    struct stat file_stat;
    int ret;
    /* 获取文件属性 */
    ret = stat("./test_file", &file_stat);
    if (-1 == ret)
    {
        perror("stat error");
        exit(-1);
    }
    /* 打印文件大小和 inode 编号 */
    printf("file size: %ld bytes\n"
           "inode number: %ld\n",
           file_stat.st_size,
           file_stat.st_ino);
    exit(0);
}

测试验证:

Linux 应用编程之stat 函数

 从图中可以得知,此文件的大小为 4060 个字节,inode 编号为 656929

接下来编译测试程序,并运行

Linux 应用编程之stat 函数

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/210763.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • God is Gril 帖子上看的有点感想「建议收藏」

    God is Gril 帖子上看的有点感想「建议收藏」GodisGril 一首不错的英文歌曲,一时光把歌词拷贝下来了,就没看曲作者和歌手可是不知道歌词,所以在google上搜索到了,谁知道找到了,godisagirl,doyoubelieveit,canyourecieveit?的帖子,没看歌词之前,看到帖子上的对话,比较有意思.godisgirl?doubelievethatgodisgirl.c

  • 智利最后一名被困矿工升井 救援行动大获成功

    智利最后一名被困矿工升井 救援行动大获成功

  • p750tm安装linux系统,Android 开发环境(虚拟机,LINUX, secureCRT)安装过程.pdf

    p750tm安装linux系统,Android 开发环境(虚拟机,LINUX, secureCRT)安装过程.pdfAndroid开发环境(虚拟机,LINUX,secureCRT)安装过程Androidlinux开发环境(虚拟机,LINUX,secureCRT)安装过程注意由于selinux打开,smb不能正常工作。Windows不能够访问虚拟机,要关闭selinux才能正常访问。解决方法:vi/etc/sysconfig/selinuxSELINUX=enforcing–>…

  • RangeValidator 控件介绍「建议收藏」

    RangeValidator 控件介绍「建议收藏」RangeValidator控件介绍 使用RangeValidator控件可以验证用户输入是否在指定范围之内。将RangeValidator控件的ControlToValidate属性设置为要验证的SelectionList或TextBox的ID。使用MinimumValue和MaximumValue属性指定范围的最小值和最大值。如果验证

  • PSPNet介绍-语义分割

    PSPNet-PyramidSceneParsingNetwork核心模块是金字塔池化模块(pyramidpoolingmodule),它能够聚合不同区域的上下文信息,从而提高获取全局信息的能力。实验表明这样的先验表示(即指代PSP这个结构)是有效的,在多个数据集上展现了优良的效果。1.pyramidpoolingmodule该模块融合了4种不同金字塔尺度的特征,第一行…

  • Flume对接Kafka详细过程[通俗易懂]

    Flume对接Kafka详细过程[通俗易懂]一、为什么要集成Flume和Kafka一般使用Flume+Kafka架构都是希望完成实时流式的日志处理,后面再连接上Storm/SparkStreaming等流式实时处理技术,从而完成日志实时解析的目标。如果Flume直接对接实时计算框架,当数据采集速度大于数据处理速度,很容易发生数据堆积或者数据丢失,而kafka可以当做一个消息缓存队列,从广义上理解,把它当做一个数据库,可以存放一段时间的数据。因此数据从数据源到flume再到Kafka时,数据一方面可以同步到HDFS做离线计算,另一方面可以做实时计

发表回复

您的电子邮箱地址不会被公开。

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