Unix高级编程之文件及目录


文件和目录

实现
ls -l

1.
stat();
fstat();
lstat();

2.文件的类型(st_mode)
dbcpls-
d:目录
b:块设备
c:字符设备
p:管道
l:符号链接
s:套接字
-:普通文件

3.文件的权限(st_mode)
rwx
u+s:u一定要拥有x权限,加s权限,使得执行此文件的用户临时拥有文件拥有者权限
g+s:
o+t:如果一个目录有t权限,能够保证其他用户对此目录都能创建文件,但是只能删除/修改自己的文件

4.文件的硬链接个数(st_nlink)
硬链接:
给任意一个文件创建一个硬链接文件,相当于增加一条记录项
同一个inode,对应两个名字.
符号链接:
给任意一个文件创建一个符号链接文件,符号链接文件中存储的是源文件的路径,有独立的inode

5.文件的拥有者和所属组(st_uid, st_gid)

6.文件的大小
文件的字节个数(st_size)
不等于所占磁盘空间的大小
磁盘最小单位是扇区(512B)(st_blocks)
文件系统最小单位是块(一般4K)

7.文件的时间
access time ----- 最后一次访问的时间
modify time ----- 最后一次修改内容的时间(ls -l)
change time ----- 最后一次修改属性信息(inode)的时间

8.读目录
opendir(3);
readdir(3);
closedir(3);


glob(3);

9.了解
mkdir(2);
rmdir(2);

remove(3);//unlink(2)/rmdir(2);
rename(2);

chown(2);
fchown(2);
lchown(2);

umask(2);
chmod(2);
fchmod(2);

link(2);
unlink(2);

系统数据文件和信息

1./etc/passwd
man 5 passwd

getpwuid(3);
getpwnam(3);

2./etc/group
man 5 group

getgrgid(3);
getgrnam(3);

3./etc/shadow
man 5 shadow

getspnam(3);
crypt(3);
getpass(3);

4.时间例程
time(2);//时间戳
gmtime(3);
localtime(3);
strftime(3);
mktime(3);

ctime(3);

有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。
原文地址:https://www.cnblogs.com/axjlxy/p/5859939.html