ubuntu linux下载进不去ccs6.0.1.00040_linux 目录

1782人阅读
Linux stat函数讲解:
表头文件:&&& #include &sys/stat.h&
&&&&&&&&&&&&&&&&&&&& #include &unistd.h&
定义函数:&&& int stat(const char *file_name, struct stat *buf);
函数说明:&&& 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
返回值:&&&& 执行成功则返回0,失败返回-1,错误代码存于errno
&&& ENOENT&&&&&&&& 参数file_name指定的文件不存在
&&& ENOTDIR&&&&&&& 路径中的目录存在但却非真正的目录
&&& ELOOP&&&&&&&&& 欲打开的文件有过多符号连接问题,上限为16符号连接
&&& EFAULT&&&&&&&& 参数buf为无效指针,指向无法存在的内存空间
&&& EACCESS&&&&&&& 存取文件时被拒绝
&&& ENOMEM&&&&&&&& 核心内存不足
&&& ENAMETOOLONG&& 参数file_name的路径名称太长
#include &sys/stat.h&
#include &unistd.h&
#include &stdio.h&
int main() {
&&& stat(&/etc/hosts&, &buf);
&&& printf(&/etc/hosts file size = %d\n&, buf.st_size);
-----------------------------------------------------
struct stat {
&&& dev_t&&&&&&&& st_&&&&&& //文件的设备编号
&&& ino_t&&&&&&&& st_&&&&&& //节点
&&& mode_t&&&&&&& st_&&&&& //文件的类型和存取的权限
&&& nlink_t&&&&&& st_&&&& //连到该文件的硬连接数目,刚建立的文件值为1
&&& uid_t&&&&&&&& st_&&&&&& //用户ID
&&& gid_t&&&&&&&& st_&&&&&& //组ID
&&& dev_t&&&&&&&& st_&&&&& //(设备类型)若此文件为设备文件,则为其设备编号
&&& off_t&&&&&&&& st_&&&&& //文件字节数(文件大小)
&&& unsigned long st_&& //块大小(文件系统的I/O 缓冲区大小)
&&& unsigned long st_&&& //块数
&&& time_t&&&&&&& st_&&&& //最后一次访问时间
&&& time_t&&&&&&& st_&&&& //最后一次修改时间
&&& time_t&&&&&&& st_&&&& //最后一次改变时间(指属性)
先前所描述的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来删除或改名。
使用stat函数最多的可能是ls-l命令,用其可以获得有关一个文件的所有信息。
1 函数都是获取文件(普通文件,目录,管道,socket,字符,块()的属性。
#include &sys/stat.h&
int stat(const char *restrict pathname, struct stat *restrict buf);
提供文件名字,获取文件对应属性。
int fstat(int filedes, struct stat *buf);
通过文件描述符获取文件对应的属性。
int lstat(const char *restrict pathname, struct stat *restrict buf);
连接文件描述命,获取文件属性。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:123710次
积分:1743
积分:1743
排名:第11510名
原创:40篇
转载:70篇
评论:23条
(1)(5)(6)(2)(1)(6)(4)(4)(1)(3)(9)(2)(4)(1)(9)(2)(12)(14)(3)(6)(3)(11)(1)按字母检索
按声母检索
Copyright &
. All Rights Reserved .页面执行时间:18,203.13000 毫秒

我要回帖

更多关于 ubuntu linux 的文章

 

随机推荐