stat()用来将参数file_name所指的文件状态,复制到参数buf所指的结构中。 下面是struct
stat内各参数的说明 struct stat { dev_t st_dev; /*device*/ ino_t st_ino;
/*inode*/ mode_t st_mode; /*protection*/ nlink_t st_nlink; /*number of
hard links */ uid_t st_uid; /*user ID of owner*/ gid_t st_gid; /*group ID
of owner*/ dev_t st_rdev; /*device type */ off_t st_size; /*total size, in
bytes*/ unsigned long st_blksize; /*blocksize for filesystem I/O
*/ unsigned long st_blocks; /*number of blocks allocated*/ time_t
st_atime; /* time of lastaccess*/ time_t st_mtime; /* time of last
modification */ time_t st_ctime; /* time of last change */ }; st_dev
文件的设备编号 st_ino 文件的i-node st_mode 文件的类型和存取的权限 st_nlink
连到该文件的硬连接数目,刚建立的文件值为1。 st_uid 文件所有者的用户识别码 st_gid 文件所有者的组识别码 st_rdev
若此文件为装置设备文件,则为其设备编号 st_size 文件大小,以字节计算 st_blksize 文件系统的I/O
缓冲区大小。 st_blcoks 占用文件区块的个数,每一区块大小为512 个字节。 st_atime
文件最近一次被存取或被执行的时间,一般只有在用mknod、utime、read、write与tructate时改变。 st_mtime
文件最后一次被修改的时间,一般只有在用mknod、utime和write时才会改变 st_ctime
i-node最近一次被更改的时间,此参数会在文件所有者、组、权限被更改时更新先前所描述的
st_mode 则定义了下列数种情况 S_IFMT 0170000
文件类型的位遮罩 S_IFSOCK 0140000 scoket S_IFLNK 0120000 符号连接 S_IFREG 0100000
一般文件 S_IFBLK 0060000 区块装置 S_IFDIR 0040000 目录 S_IFCHR 0020000
字符装置 S_IFIFO 0010000 先进先出 S_ISUID 04000 文件的(set user-id on
execution)位 S_ISGID 02000 文件的(set group-id on execution)位 S_ISVTX 01000
文件的sticky位 S_IRUSR(S_IREAD) 00400 文件所有者具可读取权限 S_IWUSR(S_IWRITE)00200
文件所有者具可写入权限 S_IXUSR(S_IEXEC) 00100 文件所有者具可执行权限 S_IRGRP 00040
用户组具可读取权限 S_IWGRP 00020 用户组具可写入权限 S_IXGRP 00010 用户组具可执行权限 S_IROTH 00004
其他用户具可读取权限 S_IWOTH 00002 其他用户具可写入权限 S_IXOTH 00001
其他用户具可执行权限
上述的文件类型在POSIX 中定义了检查这些类型的宏定义 S_ISLNK (st_mode)
判断是否为符号连接 S_ISREG (st_mode) 是否为一般文件 S_ISDIR (st_mode)是否为目录 S_ISCHR
(st_mode)是否为字符装置文件 S_ISBLK (s3e) 是否为先进先出 S_ISSOCK (st_mode)
是否为socket 若一目录具有sticky
位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来删除或改名。
|
相关推荐
【linux学习笔记--17】...【linux学习笔记-3】文件操作(stat,chmod,umask).doc 【linux学习笔记-4】进程扇和进程链.doc 【linux学习笔记-5】编写自己的ls命令.doc 【linux学习笔记-6】文件IO操作--读写、重定向等.
【linux学习笔记-3】文件操作(stat,chmod,umask) 【linux学习笔记-4】进程扇和进程链 【linux学习笔记-5】编写自己的ls命令 【linux学习笔记-6】文件IO操作--读写、重定向等 【linux学习笔记-7】用户标识UID与有效...
### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...
根据提供的信息,我们可以详细探讨 Linux 下 C 语言编程中关于文件操作的相关知识点。这包括文件的创建、读写、属性管理、目录文件操作以及管道文件等主题。 ### 1. 文件的创建和读写 #### 系统调用 `open` `open...
在Linux系统中,C语言是基础且强大的编程工具,它提供了丰富的函数库来处理文件操作。本教程将探讨如何在Linux环境下使用C语言进行文件的读取、写入、显示目录以及创建目录等常见操作。 首先,让我们了解C语言中的...
glibc(GNU C Library)是Linux上的主要C库,提供了许多系统调用和低级接口。 在Linux环境下安装MySQL 5.7.30,你需要遵循以下步骤: 1. **解压**: 首先,你需要使用7-Zip工具解压7z格式的文件,然后使用tar命令...
### Linux下C语言编程——线程操作 #### 前言:Linux下线程的创建与基础使用 在Linux环境中,线程作为一种重要的并发机制,为开发者提供了在单个进程中执行多个任务的能力。相较于进程,线程之间的切换成本更低,...
标题中的"postgresql-10.12-1-linux-x64-binaries.tar.gz"指示了这是PostgreSQL 10.12.1版本的Linux 64位二进制文件包,通常用于在Linux环境中安装该数据库系统。 **PostgreSQL 10.12版本的关键特性:** 1. **多...
通过这些实验,学习者可以深入理解Linux系统中的文件操作,包括标准输入输出的使用、文件的复制以及查看文件属性的方法。这些基本技能对于进行Linux系统编程至关重要,也常常是编写系统工具和应用程序的基础。
放置到`openarkcompiler/tools`目录,打开`openarkcompiler/build/config/BUILDCONFIG.gn`文件,将`GN_C_COMPILER`、`GN_CXX_COMPILER`和`GN_AR`三个变量配置为Clang编译器所在路径,例如: ``` GN_C_COMPILER = "$...
这个"postgresql-10.15-1-linux-x64-binaries.tar.gz"文件是专为Linux系统设计的PostgreSQL 10.15版本的64位二进制安装包。它包含了运行、管理和维护PostgreSQL数据库所需的所有核心组件和工具。 1. **PostgreSQL...
标题 "cudnn-linux-x86-64-8.6.0.163-cuda11-archive.zip" 暗示了我们正在处理一个针对Linux操作系统,x86_64架构的CUDA深度神经网络库(CuDNN)的压缩包。CuDNN是由NVIDIA开发的用于加速深度学习应用程序的库,它与...
标题中的"postgresql-10.19-1-linux-x64-binaries.tar.gz"是指PostgreSQL 10.19版本的64位Linux二进制文件的压缩包,适用于x86_64架构的Linux系统。 这个压缩包包含了运行和管理PostgreSQL数据库所需的所有核心组件...
stat.xslnginx-rtmp-module-stat.xsl conf/nginx.conf 为配置文件实例 RTMP监听 1935 端口,启用live 和hls 两个application HTTP监听 8080 端口, * :8080/stat 查看stream状态 * :8080/index.html 为一个...
总之,在Linux下用C语言读取文件信息,主要涉及`<sys/stat.h>`头文件中的`stat()`函数,通过它获取的`struct stat`结构体包含了丰富的文件属性。理解并熟练运用这些函数对于进行系统级编程和文件管理至关重要。在yjl...
stat系统调用系列包括了fstat、stat和lstat,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。
Linux操作系统提供了多种方法来实现开机自动运行脚本,这些方法对于自动化运维和系统管理非常有用。以下是关于在Linux中设置开机自启动脚本的详细知识: 1. **使用`crontab`** `crontab`是Linux下的定时任务调度...
在uni-app框架中,uni-stat是一个专门用于实现这一目标的依赖文件。uni-app是一个多端开发框架,能够支持iOS、Android、H5、小程序等多个平台,而uni-stat则是uni-app生态中的数据分析工具,主要用于小程序的数据...
标题 "redis-stat 离线安装" 涉及到的是在没有网络或者网络环境受限的情况下,如何安装和使用 `redis-stat` 这一工具。`redis-stat` 是一个用于监控 Redis 数据库性能的工具,它能提供实时的统计信息,帮助管理员...
这个命令的实现涉及到对Linux内核系统调用的使用,如`stat()` 和 `readdir()`,以及C语言编程技术。下面将详细介绍`ls -l`命令的实现原理和相关知识点。 1. 文件系统接口: `ls -l` 的实现首先需要访问文件系统...