首页 > 代码库 > Unix高级编程之文件及目录
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);
Unix高级编程之文件及目录