正如前面所述,这是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 下载
2022-08-01 08:45:24 18.16MB UNIX 环境高级编程 linux
1
学习LINUX环境编程的见证,一笔一画,脉络清楚,结构清晰,自己再看一目了然,传上来与众分享
2022-07-21 21:22:47 5.83MB 原创 UNIX API C
1
UNIX环境高级编程中文版第三版+源码
2022-06-28 12:30:05 20.78MB UNIX 环境高级编程 中文版 第三版
1
unix环境高级编程--第章 UNIX标准化及实.doc
2022-06-09 22:02:12 52KB unix
unix环境高级编程--第章 UNIX基础知识.doc
2022-06-09 22:02:11 57KB unix
unix环境高级编程--第章 文件和目录(下).doc
2022-06-09 22:02:10 59KB unix
unix环境高级编程--第章 文件和目录.doc.doc
2022-06-09 22:02:09 49KB unix
6.7 登录会计 大多数U N I X系统都提供下列两个数据文件: u t m p文件,它记录当前登录进系统的各个用 户;w t m p文件,它跟踪各个登录和注销事件。 在V 7中,包含下列结构的一个二进制记录写入这两个文件中: struct utmp { char ut_line[8]; /* tty line: "ttyh0", "ttyd0", "ttyp0", ... */ char ut_name[8]; /* login name */ long ut_time; /* seconds since Epoch */ } ; 登录时, l o g i n程序填写这样一个结构,然后将其写入到 u t m p文件中,同时也将其添写到 w t m p 文件中。注销时, i n i t进程将u t m p文件中相应的记录擦除 (每个字节都填以0 ),并将一个新记录 添写到w t m p文件中。读w t m p文件中的该注销记录,其u t _ n a m e字段清除为0。在系统再启动时, 以及更改系统时间和日期的前后,都在 w t m p文件中添写特殊的记录项。 w h o ( 1 )程序读u t m p文 件,并以可读格式打印其内容。后来的 U N I X版本提供 l a s t ( 1 )命令,它读w t m p文件并打印所选 择的记录。 大多数U N I X版本仍提供u t m p和w t m p文件,但其中的信息量却增加了。V 7中2 0字节的结构 在S V R 2中已扩充为3 6字节,而在S V R 4中,u t m p结构已扩充为3 5 0字节。 S V R 4中这些记录的详细格式请参见手册页 u t m p ( 4 )和u t m p x ( 4 )。S V R 4中这两 个文件都在目录 / v a r / a d m中。S V R 4提供了很多函数 (见g e t u t ( 3 )和g e t u t x ( 3 ) )读或写 这两个文件。 4 . 3 + B S D中登录记录的格式请参见手册页 u t m p ( 5 )。这两个文件的路径名是 / v a r / r u n / u t m p和/ v a r / l o g / w t m p。 6.8 系统标识 P O S I X . 1定义了u n a m e函数,它返回与主机和操作系统有关的信息。 #include int uname(struct utsname *n a m e) ; 返回:若成功则为非负值,若出错则为- 1 1 1 6 U N I X环境高级编程 下载
2022-06-05 19:39:35 18.16MB UNIX 环境高级编程 linux
1
UNIXLinux环境高级编程.pptx
2022-06-03 20:00:42 195KB 文档资料
unix环境高级编程.pdf
2022-05-28 09:01:12 18.38MB unix 服务器 linux 运维
1