Unix

unix高级编程 笔记

第一章

对unix基本概念和术语的介绍


代码部分还需多加实践

标准输入,标准输出和标准错误 重定向

强调代码中出错处理

系统调用和库函数的区别
系统调用:系统(unix)提供的调用内核的接口
库函数:编程语言/编译器中,使用系统调用的函数

习题中关于perror和strerror(对于c语言的不熟悉)

第二章

unix标准和实现


标准:unix编程标准 接口规范
实现:具体的函数接口

有很多的不同的unix系统,但是unix编程需要统一的标准和实现 可移植性

awk命令

编译时限制
运行时限制
(数,极限数,边界数)
http://www.cppblog.com/Onway/archive/2012/03/26/169063.html

选项
是否支持某项功能

功能测试宏
定义头文件版本

第三章

文件io函数


文件描述符

int openat(int dirfd, const char *pathname, int flags, mode_t mode);
函数openat的第一个参数是目录的文件描述符

文件偏移量

有空洞的文件(类似于bug吗)
文件空洞不占用任何磁盘空间
https://blog.csdn.net/clamercoder/article/details/38361815

预读
数据结构:B及B+树(普遍运用在数据库文件系统。)
(vs 红黑树 )

B树,B+树,红黑树的比较
https://blog.csdn.net/qq_36183935/article/details/81095212

进程表-文件表-v节点

避免文件操作冲突:原子操作

buffered and unbuffered

ext4文件系统(关于文件系统)

第四章

文件属性


文件类型:普通文件,目录文件,块特殊文件,字符特殊文件,FIFO,套接字(socket),符号链接

lstat和stat函数 检测符号链接

访问权限
删除/创建:对所在目录有写和执行权限

执行权限S 强制位
设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份

黏着位
使一个目录既能够让任何用户写入文档,又不让用户删除这个目录下他人的文档,t权限就是能起到这个作用。t权限一般只用在目录上,用在文档上起不到什么作用。