文件长度可通过 stat 那一系列的函数来获取
长度保存在 struct stat 结构的 st_size 字段中
对于符号链接文件 , 文件长度就是其指向的文件的相对路径长度
如 lib --> user/lib
文件长度就是 7
文件中的空洞
可以通过lseek函数形成 。 标准中 空洞 不要求占用存储空间
, 读文件时如若读到空洞部分,空洞部分的值为 0 .
文件的截短
文件的截短可用以下函数
truncate() 函数和 ftruncate()函数
这俩函数都可以将文件截短为长度为 length 的文件
打开文件时使用 O_TRUNC 标志可使文件被截短为 0
文件系统
硬链接 : 两个目录想指向同一个 i 节点 。 当一个文件有多个硬链接的时候,文件被删除并不表示文件所占用的空间被释放
软链接 :也称符号链接,文件的实际内容是 其指向的实际的文件的 相对路径
link() unlink() remove() 和 rename()函数
link() 函数是用于创建 现有文件的 一个硬链接
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 5 int 6 main(int argc, char** argv) 7 { 8 int fd; 9 link(__FILE__,"new"__FILE__); 10 return 0; 11 }
unlink() 函数的功能是删除一个文件 (解除一个硬链接)
remove()函数的功能是解除一个文件或目录的链接 , 删除目录的时候同 rmdir() , 删除文件的时候同 unlink()
rename()
当指定的新名字文件存在时
1 如果要更名的是一个文件,