首页 > 其他分享 >1.24 stat、lstat函数

1.24 stat、lstat函数

时间:2024-02-05 10:36:46浏览次数:33  
标签:文件 stat txt lstat include buf 1.24

 摘自:https://blog.csdn.net/m0_38062470/article/details/113574697

 

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
 
int stat(const char *pathname, struct stat *buf);
作用:获取文件相关的信息
参数:
    -pathname:操作的文件的路径
    -buf:结构体变量,传出参数,用于保存获取到的文件的信息
返回值:
    成功:返回0
    失败:返回-1,设置errno
 
int lstat(const char *pathname, struct stat *buf);
参数:
    -pathname:操作的文件的路径
    -buf:结构体变量,传出参数,用于保存获取到的文件的信息
返回值:
    成功:返回0
    失败:返回-1,设置errno

 

 

//perror printf
#include <stdio.h>
//stat
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
 
int main()
{
    struct stat buf;
    int ret = stat("hello.txt",&buf);
    if(ret==-1)
    {
        perror("stat");
        return -1;
    }
    printf("size: %ld\n",buf.st_size);
    return 0;
}

 下面看lstat函数:

先给hello.txt创建一个软链接:

 

 通过stat命令查看hello.txt文件的信息:

 

 通过stat命令查看b.txt文件的信息:

 

 查看b.txt文件的内容:

 

 显示的实际上是hello.txt中的内容。

所以:

用stat函数获取软链接文件的信息,得到的实际是指向的文件的信息。

用lstat函数获取软链接文件的信息,得到的是软链接文件本身的信息。

标签:文件,stat,txt,lstat,include,buf,1.24
From: https://www.cnblogs.com/LiuYanYGZ/p/18007480

相关文章

  • windows查看端口占用,通过端口找进程号(查找进程号),通过进程号定位应用名(查找应用)(netstat
     文章目录通过端口号查看进程号`netstat`通过进程号定位应用程序`tasklist` 通过端口号查看进程号netstat在Windows系统中,可以使用netstat命令来查看端口的占用情况。以下是具体的步骤:打开命令提示符(CMD):按Win+R组合键打开运行对话框,输入cmd并按Enter键。......
  • Caused by: java.lang.IllegalStateException: A unix domain socket connection requ
    Causedby:java.lang.IllegalStateException:Aunixdomainsocketconnectionrequiresepollorkqueueandneitherisavailable出现这个错误,首先确保自己的操作系统是否支持epoll,或者kqueue。如果支持。请导入netty的大库,lettuce中好像缺失了一部分,我怀疑是这是怀疑,......
  • Yield Keyword, classmethod and static method, and Property Method in Python
    ReferenceWhatisYieldKeywordinPythonPython'syieldkeywordislikeanotheroneweusetoreturnanexpressionorobject,typicallyinfunctions,calledreturn.Thereisasmallamountoffluctuation,though.Theyieldstatementofafunctionre......
  • 【解题报告】CodeForces523D:Statistics of Recompressing Videos
    CF523D解题报告CF523D先上结果:前两次语言选错了,编译一直不过(做这题是因为集训老师让我做我就做了,要不然我都快忘了我有CF账号了(思路省流:STL大法开一个小根堆存目前正在运行的服务器(也可以大根堆,但是存时间进去的时候存负的),如果有空机就直接处理,这个视频处理完的时间就......
  • static_cast, dynamic_cast与reinterpret_cast的区别
    在C++中,static_cast,dynamic_cast和reinterpret_cast都可用于类型转换,它们在具体使用时有什么区别?此外,更为重要的是,为什么不推荐使用强制类型转换?1.static_caststatic_cast是静态类型转换,“静态”一词是指在程序编译期间完成类型的转换,这应该是平时使用最多的类型转换。例如,将......
  • 新主机加入k8s 1.24.4集群
    配置静态IP[root@localhost~]#cat/etc/sysconfig/network-scripts/ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR......
  • media图片不显示static
    settings.pySTATIC_URL='static/'#Defaultprimarykeyfieldtype#https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-fieldDEFAULT_AUTO_FIELD='django.db.models.BigAutoField'STATICFILES_DIRS=[BASE_DIR/......
  • 【VMware Workstation】传输 (VMDB)错误 -14: Pipe connection has been broken。
    传输(VMDB)错误-14:Pipeconnectionhasbeenbroken。涉及环境cmd>systeminfoOS名称:MicrosoftWindows10专业版OS版本:10.0.19045暂缺Build19045运行winver版本22H2(提作系统内部版本19045.3930)产品:VMware®Workstation17Pro......
  • srs(state thread)如何实现协程切换
    417行的宏执行协程A上下文的保存419行_st_vp_schedule在RUNQ中找到一个待执行协程B,恢复协程B的上下文,切换到该协程B执行.协程B执行到io阻塞或者sleep事件,就会重新把协程B缓存起来,并寻找一个待执行协程(假设这里就AB两个协程),恢复协程A的上下文继续执行.完成协程切......
  • Hive连接报错:root is not allowed to impersonate root (state=08S01,code=0)
    问题描述使用hive/bin目录下的hive启动客户端,使用!connectjdbc:hive2://hadoop01:10000连接Hive数据仓库时提示输入用户名和密码,输入数据库的用户名和密码报错:Error:CouldnotopenclienttransportwithJDBCUri:jdbc:hive2://hadoop01:10000:Failedtoopennewsession......