UNIX高级环境编程读书笔记(chapter4)

Chapter 4  文件和目录
4.0.给定一个pathname
  (1)stat函数返回一个与此命名有关的信息结构.
  (2)fstat函数获得已在描述符filedes上打开的文件的有关信息.
           (3)lstat函数类似于stat,但是当命名的文件是一个符号链接时,lstat返回该符号链接的有关信息,而不是由该符号链接引用的文件的信息.
4.1文件类型
(1)普通文件
(2)目录文件
(3)字符特殊文件
(4)块特殊文件
(5)FIFO
(6)套接口
(7)符号链接
4.2 文件存取许可权
每个文件有9个存取许可权位, 可将他们分成三类:
用户-读
用户-写
用户-执行

组-读
组-写
组-执行

其他-读
其他-写
其他-执行
chmod(1)命令用来修改文件的所有者.


4.3 access函数: 是按实际用户ID和实际组ID来测试其存取能力.
#include "apue.h"
#include <sys/types.h>
#include <fcntl.h>


int
main(int argc, char *argv[])
{
    if (argc != 2)
    {
        err_quit("usage: ./4.1 <pathname>");
    }


    if (access(argv[1], R_OK) < 0)
    {
        err_ret("access error for %s\n", argv[1]);
    }
    else
    {
        printf("read access OK\n");
    }


    if (open(argv[1], O_RDONLY) < 0)
    {
        err_ret("open error for %s\n", argv[1]);
    }
    else
    {
        printf("open for %s OK!\n", argv[1]);
    }


    exit(0);
}


4.4 umask函数:umask函数为进程设置文件方式创建屏蔽字,并返回以前的值

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "apue.h"


int
main(void)
{
    umask(0);
    if (creat("foo", S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) < 0)
    {
        err_sys("creat error for foo\n");
    }


    umask( S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
    if (creat("bar", S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) < 0)
    {
        err_sys("creat error for bar\n");
    }


    exit(0);
}


4.5 chmod和fchmod函数:这两个函数使我们可以修改现存文件的存取许可权。
chmod 函数在指定的文件上进行操作, 而fchmod函数则对已打开的文件进行操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值