fstat、stat和lstat 区别
nt fstat(int filedes, struct stat *buf);
int stat(const char *path, struct stat *buf);
int lstat(const char *path, struct stat *buf);
一眼就能看出来fstat的第一个参数是和另外两个不一样的,fstat区别于另外两个系统调用的地方在于,fstat系统调用接受的是 一个“文件描述符”,而另外两个则直接接受“
文件全路径”。文件描述符是需要我们用open系统调用后才能得到的,而文件全路经直接写就可以了。
stat和lstat的区别:当文件是一个符号链接时,lstat返回的是该符号链接本身的信息;而stat返回的是该链接指向的文件的信息。(这样记,lstat比stat多了一个l,因此它是
有本事处理符号链接文件的,因此当遇到符号链接文件时,lstat当然不会放过。而 stat系统调用没有这个本事,它只能对符号链接文件睁一只眼闭一只眼,直接去处理链接所指
文件喽)
- /*
- * Linux文件属性结构体信息
- * struct stat
- * {
- * dev_t st_dev;//设备
- * ino_t st_ino;//结点
- * mode_t st_mode;//模式
- * nlink_t st_nlink;//硬连接
- * uid_t st_uid;//用户ID
- * gid_t st_gid;//组ID
- * dev_t st_rdev;//设备类型
- * off_t st_off;//文件字节数
- * unsigned long st_blksize;//块大小
- * unsigned long st_blocks;//块数
- * time_t st_atime;//最后一次访问时间
- * time_t st_mtime;//最后一次修改时间
- * time_t st_ctime;//最后一次属性改变时间
- * }
- * 可通过stat或fstat函数获得文件的其他属性
- * stat函数用来判断没有打开的文件,而fstat函数用来判断打开的文件。
- *
- */
- #include <unistd.h>
- #include <sys/stat.h>
- int main(void)
- {
- struct stat buf;
- stat("/etc/passwd",&buf);
- /*
- * stat函数
- * 取得文件的属性
- * sys/stat.h,unistd.h
- * int stat(const char *file_name,struct stat*buf);
- * 将参数file_name所指的文件状态复制到参数buf所指的结构中
- * 成功返回0,失败返回-1,错误存储于errno
- */
- printf("/etc/passwd文件的大小是:%d/n",buf.st_size);
- printf("/etc/passwd文件的最后一次修改时间是:%d/n",buf.st_ctim);
- return 0;
- }
fstat、stat和lstat 区别相关推荐
- linux下fstat、stat和lstat 区别(转)
原文地址::http://www.cnitblog.com/guopingleee/archive/2008/11/13/51411.aspx 相关文章 1.C语言中fstat.stat和lstat ...
- Linux中fstat、stat和lstat的用法与区别
stat系统调用系列包括了fstat.stat和lstat,它们都是用来返回"相关文件状态信息"的,三者的不同之处在于设定源文件的方式不同. struct stat结构体 首先隆重 ...
- 计算机科学精彩帖子收集
linux源码 LXR 源自"the Linux Cross Referencer",中间的"X"形象地代表了"Cross".与 Sourc ...
- nodejs中的文件系统
文章目录 简介 nodejs中的文件系统模块 Promise版本的fs 文件描述符 fs.stat文件状态信息 fs的文件读写 fs的文件夹操作 path操作 简介 nodejs使用了异步IO来提升服 ...
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 【Linux】文件操作系统调用
一. 文件描述符 在Linux下使用文件描述符来表示设备文件和普通文件.文件描述符是一个整型的数据,所有对文件的操作都通过文件描述符实现.文件描述符的范围是0~OPEN_MAX,系统中有3个已经分配的 ...
- Unix基本系统数据类型和stat结构体
Unix基本系统数据类型 历史上,某些UNIX变量已与某些C数据类型联系在一起,例如,历史上主.次设备号存放在一个1 6位的短整型中, 8位表示主设备号,另外8位表示次设备号.但是,很多较大的系统需要 ...
- Linux文件属性2——使用stat函数获取文件属性
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.获取文件属性 1.stat.fstat.lstat函数简介 每个文件都附带有一些属性: 属性信息存在于文件本身 ...
- 17、文件IO详解及实例
上篇文章已经讲过了文件系统的一些基本的概念,这里首先对文件IO进行详细的学习,文件IO也称为系统调用IO,是操作系统为"用户态"运行的进程和硬件交互提供的一组接口,即操作系统内核留 ...
最新文章
- 转:使用 PHP 直接在共享内存中存储数据集
- python 随机数 随即字符 打乱元素顺序 random.randint()[uniform(), choice(), randrange(), shuffle(), sample()]
- windows常用命令netstat
- MATLAB的xlsread无法读入数据问题
- 用VS连接oracle数据库时ORA-12504错误
- python查看文档的软件_Python __doc__属性:查看文档
- 如何做一个懂产品的程序员?
- 公交查询系统 c语言,城市公交查询系统的设计任务书
- 【Python】导入资源管理器的文件列表(计算文件和文件夹大小)
- (计算机组成原理)第三章存储系统-第三节2:ROM芯片
- Python学习笔记——条件分支和while循环
- STM32F103C8T6用官方bootloader实现IAP升级操作方法
- type=radio增加onclick没有效果_佳能6d+小痰盂镜头,加1张餐巾纸拍摄花卉,朦胧美效果你喜欢吗?...
- MVC.NET:提供对字体文件.woff的访问
- hdu 4911 “Inversion”——逆序对问题
- python 自动执行 apdl_在高效的mann中从Python运行ANSYS Mechanical APDL
- linux日期时间转换函数,Linux时间戳、日期转换函数
- linux模拟键盘按键_Linux上的自动键盘按键
- FPGA学习笔记—UART,RS485串口通信(verilog)
- seo日常工作表_seo专员日常工作内容是什么?
热门文章
- 51Nod - 1381 硬币游戏
- HDU - 4497 GCD and LCM
- node--更新数据库问题
- 大龄程序员怎样渡过中年危机?(转)
- 内置系统账户:Local system/Network service/Local Service 区别
- 自定函数获取datagrid,datalist,rpeater控件中header,footer栏中控件
- JavA持有类_关于继承:Java持有对象的超类的类型
- mysql .pdb是什么文件_计算广告算法到底要做什么?
- python polar函数_Python可视化很简单,可是你会吗?python绘制饼图、极线图和气泡图,让我来教教你吧,一文教会!!!...
- linux用户空间注册按键事件,linux下获取按键响应事件