登录 注册
当前位置:主页 > 资源下载 > 49 > 中提出了数据流图直接转换为模块结构图的方法

中提出了数据流图直接转换为模块结构图的方法

  • 更新:2024-11-05 16:07:11
  • 大小:5.82MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:Unix - 操作系统
  • 格式:PDF

资源介绍

正如前面所述,这是U N I X文件系统的经典格式,在B a c h〔1 9 8 6〕一书的第4章中对此作了 说明。关于伯克利快速文件系统对此所作的更改请参阅 L e ffler 等〔1 9 8 9〕中的第7章。 4.15 link,unlink,remove和r e n a m e函数 如上节所述,任何一个文件可以有多个目录项指向其 i节点。创建一个向现存文件连接的 方法是使用l i n k函数。 #include int link(const char *e x i s t i n g p a t h, const char *n e w p a t h) ; 返回:若成功则为0,若出错则为-1 此函数创建一个新目录项n e w p a t h,它引用现存文件e x i s t i n g p a t h。如若n e w p a t h已经存在,则返 回出错。 创建新目录项以及增加连接计数应当是个原子操作(请回忆在3.11节中对原子操作的讨论)。 大多数实现,例如S V R 4和4 . 3+B S D要求这两个路径名在同一个文件系统中。 P O S I X . 1允许支持跨越文件系统的连接的实现。 只有超级用户进程可以创建指向一个目录的新连接。其理由是这样做可能在文件系统中形 成循环,大多数处理文件系统的公用程序都不能处理这种情况( 4 . 1 6节将说明一个由符号连接 引入的循环的例子)。 为了删除一个现存的目录项,可以调用u n l i n k函数。 #include int unlink(const char *p a t h n a m e) ; 返回:若成功则为0,若出错则为-1 此函数删除目录项,并将由p a t h n a m e所引用的文件的连接计数减1。如果该文件还有其他连接, 则仍可通过其他连接存取该文件的数据。如果出错,则不对该文件作任何更改。 我们在前面已经提及,为了解除对文件的连接,必须对包含该目录项的目录具有写和执行 许可权。正如4 . 1 0节所述,如果对该目录设置了粘住位,则对该目录必须具有写许可权,并且 具备下面三个条件之一: • 拥有该文件。 • 拥有该目录。 • 具有超级用户优先权。 第 4章 文件和目录 7 1