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);

时间: 09-08

Unix高级编程之文件及目录的相关文章

Unix环境高级编程(二)文件和目录

本章主要介绍的是文件结构及目录.重点是通过stat函数获取文件的结构信息,然后是文件目录及其遍历.学完本章后,编写了一个输出给的目录下的文件信息的程序. 首先是包含在<sys/stat.h>文件下的stat.fstat.lstat三个函数,三个函数的原型如下: int stat(const char *path, struct stat *buf);int fstat(int fd, struct stat *buf);int lstat(const char *path, struct st

Unix高级编程之文件IO

文件io---低级io 特点: 不带缓存io优点: 实时性高 1.io基本操作 文件描述符:文件io打开文件的标识 非负整型数,是内核为打开文件维护结构的数组下标 默认最多能打开1024文件 stdin-----0 stdout-----1 stderr-----2 函数: open(2); read(2); write(2); lseek(2); <1>允许偏移的字节个数大于文件本身 <2>lseek()本身不进行读写操作 空洞文件 空洞文件本身不占用磁盘空间 close(2);

unix高级编程中的一个头文件 apue.h 与一个差错文件error.c 的内容

在查看unix高级编程中的代码时,如果我们编写书中的代码,发现一般都会报错,这是因为作者在写这本书时,他自己编写了一个头文件,跟一个差错处理文件,出来处理他自己的代码错误信息: 下面我们来看下代码的内容: 我实现第一个代码,关于文件的打开,实现 ls 命令的代码: #include "apue.h"#include <stdio.h>#include <dirent.h> int main(int argc, char *argv[]){ DIR *dp; st

看unix高级编程时遇到apue.h找不到的问题

一开始看到这本书,刚翻了几页,就觉得对味.按照书中的代码做练习时,编译代码文件提示fatal error: apue.h: No such file or directory.翻看书的附录B,可以看到apue.h的资料,原来作者是为了减少书中示例代码的长度,将很多包含头文件的代码封装到了apue.h 这个文件. 下载源码 从unix高级编程书籍官网下载书籍的上的所有源码. wget http://www.apuebook.com/src.tar.gz 解压这个文件 tar -zxvf src.t

&lt;unix高级编程&gt;笔记 chapter1

os严格上是软件,为计算机提供资源和app运行环境. 特称为内核. 内核的接口被成为system call;然后库函数对system call进行了封装;shell是特殊app,为运行其他程序提供了一个接口. shell是个命令行解释器,读取输入,执行命令. unix文件系统是由directory和file组成.目录起点成为root,名字是/. 文件属性指类型\大小\所有者\权限以及修改时间.stat和fstat返回文件属性的结构. 比如下面操作: 2.文件名 只有/和null不能出现在文件名里

UNIX 高级编程(第二版) apue.h配置问题

在第二版的UNIX高级编程中,apue.h头文件下载后,编译过程中出现无法编译的问题,解决方法如下: 在http://www.apuebook.com/下载src.tar.gz源代码的压缩包. 1.解压至/home/user/目录下 2.修改 Make.defines.linux中的WKDIR=/home/xxx/apue.2e,为WKDIR=/home/user/apue.2e 3.返回至apue.2e目录下面,修改linux.mk,将里面的nawk全部改为awk,可以使用这个命令 :%s/n

《unix环境高级编程》 读书笔记 目录

近来读书,做些笔记,来年好翻翻. 本文所使用的操作系统为 CentOS7.0,如果不想装双系统的可以装虚拟机,可以参考这里: http://blog.csdn.net/alex_my/article/details/38142229 当然啦,直接装个再好不过了. 1 链接:http://blog.csdn.net/alex_my/article/details/39079053 涉及主题:文件描述符,系统资源限制,文件相关,close-on-exec, 涉及函数:getrlimit, setrl

Unix环境高级编程(一)文件I/O

Unix系统中大多数文件I/O只需用到五个函数:open.read.write.lseek.close.本章说介绍的I/O是不带缓冲的,即:每个read和write都调用内核中的一个系统调用.不是ISO C的组成部分.对于内核而言,所有打开的文件都通过文件描述符引用. 在<unistd.h>中定义三个标准的文件描述符: STDIN_FILENO 标准输入 STDOUT_FILENO 标准输出 STDERR_FILENO 标准出错输出 具体函数描述:在<fcntl.h>头文件下 in

Python IO编程——操作文件和目录

1.1   操作文件和目录 >>> import os >>> os.name     #操作系统类型 'posix' >>> os.uname()     #详细的系统信息 posix.uname_result(sysname='Linux',nodename='daidai.com', release='2.6.18-194.el5', version='#1 SMP Tue Mar 1621:52:39 EDT 2010', machine='x