阻塞和非阻塞
读常规文件是不会阻塞的,不管读多少字节read 一定会在有限的时间内返回
阻塞读终端,block_readtty.c
非阻塞读终端,nonblock_readtty.c
非阻塞读终端和等待超时,nonblock_timeout.c
阻塞是设备文件,网络文件的属性
fcntl更改文件属性
F_GETFL
lseek
off_t lseek(int fd,off_t offset,int whence)
成功:文件起始位置向后的偏移量
失败:-1
fd,文件描述符
offset,偏移量
whence:
1.SEEK_SET,将文件偏移量属于距离文件开头offset个字节,此时offset必须为非负,光标向后
2.SEEK_CUR,将文件偏移量设为当前值+offset,此时offset可正可负
3.SEEK_END,将文件偏移量是为文件长度 +offset,此时offset可正可负
truncate截短文件
int truncate(文件名,off_t longe)
改变文件大小
截短字节数小于实际文件大小:文件被缩短了多余的内容,按丢弃处理
截短字节数大于实际文件大小:文件被拓展了,拓展部分用\0填充,在文件实际末尾和拓展后的新末尾间,形成一个空洞文件
od显示文件或流
od作用,以指定格式查看文件内容
od -A(地址进制) -t(显示格式)文件名
-A按指定的进制显示地址信息
-t指定数据显示的格式
dup和dup2 重定向
复制一个已有的文件描述符,实现指向同一个文件..