《APUE》笔记-第四章-函数总结

这一章的函数很多,为方便记忆,现将大部分(文件截断、读目录、时间相关的函数未总结)总结如下:

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>

#define BUFSIZE
struct stat buf;
uid_t owner;
gid_t group;

stat("pathname", &buf);
fstat(fd, &buf);
lstat("pathname", &buf);
fstatat(fd, "pathname", &buf, AT_SYMLINK_NOFOLLOW);

chmod("pathname", st_mode);
fchmod(fd, st_mode);
fchmodat(fd, "pathname", st_mode, AT_SYMLINK_NOFOLLOW);

chown("pathname", owner, group);
fchown(fd, owner, group);
lchown("pathname", owner, group);
fchownat(fd, "pathname", owner, group, AT_SYMLINK_NOFOLLOW);

access("pathname", R_OK);
faccessat(fd, "pathname", R_OK, E_ACCESS);

umask(0);
umask(st_mode);

link("pathname", "newpath");
linkat(efd, "pathname", nfd, "newpath", AT_SYMLINK_FOLLOW);

unlink("pathname");
unlinkat(fd, "pathname", AT_REMOVEDIR);

remove("pathname");

rename("pathname", "newpath");
renameat(efd, "pathname", nfd, "newpath");

symlink("pathname", "linkpath");
symlinkat("pathname", fd, "linkpath");

readlink("pathname", &buf, BUFSIZE);
readlinkat(fd, "pathname", &buf, BUFSIZE);

mkdir("pathname", st_mode);
mkdirat(fd, "pathname", st_mode);

rmdir("pathname");

chdir("pathname");
fchdir(fd);

getcwd(&buf, BUFSIZE);

规律:

1.返回值:   

   umask返回之前的文件模式创建屏蔽字,readlink和readlinkat返回已读到的字节数,getcwd失败时返回NULL;剩下的,成功,返回0,失败,返回-1。

2.函数名:

   只有umask,remove,rmdir,getcwd,chdir没有带at形式的函数,但chdir有带f形式的函数;剩下的都有带at形式的函数

3.参数:    

   原始函数名用的都是路径(可以是相对的,也可以是绝对的);函数名前加<strong>f</strong>的,用的是文件描述符<strong>fd</strong>;函数名前加<strong>f</strong>,函数名后又加<strong>at</strong>的,文件描述符和路径名都作为参数

4.常数:   

   AT_SYMLINK_NOFOLLOW用于:fstatat、fchownat、fchmodat   AT_SYMLINK_FOLLOW用于:linkat   AT_REMOVEDIR用于:unlinkat   E_ACCESS用于:faccessat

5.flag:   

   要么是第4点的常数,要么是0(代表默认值)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值