摘要:
link–用于创建一个现有文件的链接;实际上是新建一个目录项,指向当前文件的i节点; unlink–用于删除一个现有文件的连接;实际上是对引用i节点的目录项进行删除,并且对链接计数-1;系统会检查文件被进程的引用计数(如被进程打开,引用计数会+1,关闭则-1),如果该引用计数为0,并且链接计数为0, 阅读全文
摘要:
umask函数设置当前进程的权限为屏蔽字;系统会有一个默认的屏蔽字,为了确保创建文件具有的权限位成功被设置,需要使用umask将屏蔽字置0; 系统屏蔽字用shell查看,比如得到如下结果,其为八进制表示形式,以0开头;这个屏蔽字表示屏蔽掉了组的写和其他的写权限; 1 0022 下面的例子很好的说明了 阅读全文
摘要:
文件,目录,权限 1. 用名称打开任一个类型的文件时,对该名字中包含的每一个目录,包括它可能隐含的当前工作目录都应该具有执行权限;这就是目录执行权限通常被称为搜索位的原因; 例如:为了打开文件/usr/include/stdio.h,需要对目录/、/usr、/usr/include具有执行权限;而具 阅读全文
摘要:
fcntl(File Control)-文件控制 ioctl(In/Out Control)-I/O控制 1. fcntl作用于文件,提供对文件的基础控制;ioctl作用于文件和设备对象,一般用来向设备发送命令,或者控制设备属性; 2. fcntl是系统预先定义好的命令选项,不能自定义;ioctl可 阅读全文
摘要:
下图为调用dup之后的文件指针状态,包含如下信息: 1. dup选择了一个最小的未使用的描述符3; 2. dup(1)之后,描述符1和描述符3指向同一个文件表项; 3. dup(1)的返回值即为复制得到的描述符3; 4. 补充dup2,dup2可以指定复制的目标描述符,如果该描述符与被复制的描述符相 阅读全文
摘要:
返回值: 成功返回读到的字节数,如果达到文件尾,则返回0;注意:如果有数据第一次读取会返回全部读到的字节数,下一次读取才会返回0; 出错返回-1; 返回值少于要求读取字节数的情况: 1. 读取普通文件时,在读到要去字节数之前达到了文件尾,如:在达到文件尾之前有30个字节,而要求读取100个字节,则r 阅读全文
摘要:
lseek使用的注意事项: 1. lseek的返回值,成功返回新的文件偏移量,失败返回-1,不能用<0判断;因为文件偏移量可能是正的,也可能是负的,所以不能使用<0判断成功与否;注意:对于普通文件,偏移量必须是非负的;但比如Intel x86处理器上运行的FreeBSD设备/dev/kmem就支持负 阅读全文