Linux 文件管理学习笔记(5-27)

Linux:
文件I/O
open,create,close,lseek,read,write.
dup 复制一个文件描述符fd.通常返回最小未使用过的fd.
dup2(int old_fd,int new_fd);将老fd复制为新fd.
fcntl,用来改变已打开文件的性质,比如open一个文件为只读,可以用fcntl改变为读写。
ioctl Linux中用于文件控制(包括socket,块等)的一个杂函数。

文件和目录:
struct stat
{
// 文件类型
// 括普通文件,目录文件,字符特殊文件,块特殊文件,FIFO(命名管道),套接口,符号连结(这种///文件指向另一个文件。
// 可以使用 S_ISREG() S_ISDIR() S_ISCHR() S_ISBLK() S_ISFIFO() S_ISLNK() S_ISSOCK()
// 来判断文件是属于什么类型。
 mode_t st_mode;

// i-node number,Linux系统对每个文件都分配一个inode,相当于序列号
ino_t st_ino;

// 设备号 (不是很清楚)
dev_t st_dev;

// 连结数量(number of links)
nlink_t st_nlink;

// 所属用户ID
uid_t st_uid;

// 所属用户组ID
gid_t st_gid;

// 普通文件的大小。以Byte计算
off_t st_size;

// 最后一此访问时间
time_t st_atime;

// 最后一此修改时间
time_t st_mtime;

// 最后一此改变文件状态时间
time_t st_ctime;

// best I/O block size
long st_blksize;

// number of 512-byte blocks allocated
long st_blocks;
};
int stat(const char *pathname,struct stat *buf)
得到一个文件的具体属性,
int fstat(int fd,struct stat *buf)
得到一个打开的文件具体属性
int lstat(const char *pathname,struct stat *buf)
前面加了l的 ,是表示: 如果pathname指向的是一个符号连结文件(即类似快捷方式),那么lstat返回的是符号连结文件的有关信息,而前面不加l的则是表示符号连结文件指向的文件的信息。

assess函数

umask函数:

umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来 说,umask中各个数字最大可以到7。

该命令的一般形式为:umask nnn
其中nnn为umask置000 - 777。
我们只要记住u m a s k是从权限中“拿走”相应的位即可。下表是umask值与权限的对照表:
umask 文件 目录
--------------------
0       6       7
1       6       6
2       4       5
3       4       4
4       2       3
5       2       2
6       0       1
7       0       0
--------------------
如:umask值为022,则默认目录权限为755,默认文件权限为644。

chown(chown ,fchown,fchown):
该函数或者命令改变目标文件的拥有者,不过该拥有着应该是已经存在的用户

chmod
改变用户对某文件的权限。

truncate / ftruncate
文件截短函数(没用过)

link,unlink,remove,rename
注:unlink和rename之间的区别:
unlink每次调用的时候减少对目标文件的连结1,当连结为0的时候,内核自动删除。
而rename则调用后直接删除

ftw:
int ftw(const char *dirpath,
               int (*fn) (const char *fpath, const struct stat *sb,
                          int typeflag),
               int nopenfd);
用于文件树遍历的,最后一个参数一般用来表示遍历的深度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值