笔记-第4章

4.2  stat、fstat和lstat函数
  #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);
  三个函数的返回值:成功返回0,出错则返回-1
 
  一旦给出pathname,stat函数就返回与此命名文件有关的信息结构。fstat函数获

取已在描述符filedes上打开文件的有关信息。lstat函数类似于stat,但是当命名的

文件是一个符号链接时,lstat返回该符号链接的有关信息,而不是由该符号链接引

用文件的信息
  struct stat {
    mode_t    st_mode;    /* file type & mode (permissions) */
    ino_t    st_ino;        /* i-node number (serial number) */
    dev_t    st_dev;        /* device number (file system) */
    dev_t    st_rdev;    /* device number for special files */
    nlink_t    st_nlink;    /* number of links */
    uid_t    st_uid;        /* user ID of owner */
    gid_t    st_gid;        /* group ID of owner */
    off_t    st_size;    /* size in bytes,for regular files */
    time_t    st_atime;    /* time of last access */
    time_t    st_mtime;    /* time of last modifation */
    time_t    st_ctime;    /* time of last file status change */
    blksize_t    st_blksize;    /* best I/O block size */
    blkcnt_t    st_blocks;    /* number of disk blocks allocated */
  };

4.3  文件类型
  文件类型信息包含在stat结构的st_mode成员中。
  <sys/stat.h>中的文件类型宏(其参数都是stat结构中的st_mode成员):
  S_ISREG()    普通文件
  S_ISDIR()    目录文件
  S_ISCHR()    字符特殊文件
  S_ISBLK()    块特殊文件
  S_ISFIFO()    管道或FIFO
  S_ISLNK()    符号链接
  S_ISSOCK()    套接字
 
  POSIX.1允许实现将进程间通信(IPC)对象(例如,消息队列和信号量等)表示文件。
下面的宏可用来确定IPC对象的类型。其参数是指向stat结构的指针:
  <sys/stat.h>中的IPC类型宏:
  S_TYPEISMQ()    消息队列
  S_TYPEISSEM()    信号量
  S_TYPEISSHM()    共享存储对象

4.7  access函数
  当用open函数打开一个文件时,内核以进程的有效用户ID和有效组ID为基础执行访

问权限测试。有时,进程也希望按其实际用户ID和实际组ID来测试其访问能力。

access函数按实际用户ID和实际组ID进行访问权限测试。
  #include<unistd.h>
  int access(const char *pathname,int mode);
  返回值:成功返回0,出错则返回-1

  其中,mode是下面所列常量的按位或(<unistd.h>):
  R_OK    测试读权限
  W_OK    测试写权限
  X_OK    测试执行权限
  F_OK    测试文件是否存在

4.8  umask函数
  umask函数为进程设置文件模式创建屏蔽字,并返回以前的值。(这是少数几个没有

出错返回函数中的一个)
  #include<sys/stat.h>
  mode_t umask(mode_t cmask);
  返回值:以前的文件模式创建屏蔽字
  其中,参数cmask是由9个常量(S_IRUSR、S_IWUSR等)中的若干个按位或构成的

4.9  chmod和fchmod函数
  这两个函数使我们可以更改先由文件的访问权限。
  #include<sys/stat.h>
  int chmod(const char *pathname,mode_t mode);
  int fchmod(int filedes,mode_t mode);
  返回值:成功返回0,出错则返回-1
  chmod函数在指定的文件上进行操作,而fchmod函数则对已打开的文件进行操作

4.11  chown、fchown和lchown函数
  下面几个chown函数可用于更改文件的用户ID和组ID。
  #include<unistd.h>
  int chown(const char *pathname,uid_t owner,gid_t group);
  int fchown(int filedes,uid_t owner,gid_t group);
  int lchown(const char *pathname,uid_t owner,gid_t group);
  返回值:成功返回0,出错则返回-1

  除了所引用的文件是符号链接以外,这三个函数的操作相似。在符号链接的情况下

,lchown更改符号链接本身的所有者,而不是该符号链接所指向的文件

4.13  文件截短
  有时我们需要在文件尾端处截去一些数据以缩短文件。将一个文件清空为0是一个

特例,在打开文件时使用O_TRUNC标志可以做到这一点。
  #include<unistd.h>
  int truncate(const char *pathname,off_t length);
  int ftruncate(int filedes,off_t length);
  均返回:成功返回0,出错则返回-1

  这两个函数将把现有的文件长度截短为length字节。

4.15  link、unlink、remove和rename函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值