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 函数

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

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

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


相关推荐

  • django实现分页_vue json

    django实现分页_vue json这里提供两种分页方法一种是手写分页,不常用,但是明白一下分页的逻辑实现第二种是用heyui提供的组件.很多功能都给封装好了,用起来也比较美观.手写分页后端接口classGoodList(APIView):defget(self,request):#当前页page=int(request.GET.get(‘page’,1))…

    2022年9月30日
    6
  • 带有机器人框架的.NET自己主动化測试

    带有机器人框架的.NET自己主动化測试

    2021年12月9日
    44
  • 烫烫烫锟斤拷是什么_卡锟

    烫烫烫锟斤拷是什么_卡锟手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘解释一下为什么会是这两个东西不是别的==:棍斤拷乱码:源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码

    2022年8月3日
    5
  • 2023年北京理工大学理论力学考研上岸前辈备考经验指导

    2023年北京理工大学理论力学考研上岸前辈备考经验指导2021年我400分+考研成功上岸北京理工大学,回顾2020一年的辛苦蹒跚,觉得值得。一、考研择校及报考因素考量关于考研择校方面,我主要考虑到未来从事行业、地域、学校实力和名气这几个方面,排列顺序按照重要度先后。首先是最为关键的未来从事行业方面,考研之前其实就应该大体思考一下未来的发展方向,这相当于给自己以后好几年定一个基调。比如我本科是航空航天类,这个专业看似和其它工科脱节了,成了大国工酱,实际上万物可转航空航天方面,我去年拿到过北京航天科工某所的offer,基本上不管是工科什么专业都招的。航空航

    2022年6月13日
    27
  • idea激活码mac【在线注册码/序列号/破解码】

    idea激活码mac【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    54
  • 重定向和转发的区别及应用[通俗易懂]

    重定向和转发的区别及应用[通俗易懂]重定向重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL,而当使用转发时,该URL会保持不变。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重

    2025年10月3日
    4

发表回复

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

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