6.7 其它数据文件

6.7 其它数据文件

至此我们讨论了两个系统数据文件-口令字文件和组文件。在日常事务操作中,Unix系统还使用很多其它文件。例如,BSD网络软件有一个记录各网络服务器所提供的服务的数据文件(/etc/services),有一个记录协议信息是数据文件(/etc/protocols),还有一个则是记录网络信息的数据文件(/etc.networks)。幸运的是,对于这些数据文件的界面都与上述对口令字文件和组文件的相似。

一般情况下,每个数据文件至少有三个函数:

1) get函数;读下一个记录,如果需要还打开该文件。此种函数通常返回指向一个结构的指针。当已达到文件尾端时返回空指针。大多数get函数返回指向一个静态存储类结构的指针,如果要保存其内容,则需复制它。

2) set函数:打开相应数据文件(如果尚末打开),然后反绕该文件。如果希望在相应文件起始处开始处理,则调用此函数。

3) end函数:关闭相应数据文件。正如前述,在结束了对相应数据文件的读、写操作后,总应调用此函数以关闭所有相关文件。

另外,如果数据文件支持某种形式的关键字搜寻,则也提供搜寻具有指定关键字的记录的例程。例如,对于口令字文件提供了两个按关键字进行搜寻的程序:getpwnam寻找具有指定用户名的记录;getpwuid寻找具有指定用户ID的记录。

存取系统数据文件的一些例程

说明

数据文件

头文件

结构

附加的关键字搜索函数

口令

/ e t c / p a s s w d

< p w d . h >

p a s s w d

g e t p w n a m , g e t p w u i d

/ e t c / g r o u p

< g r p . h >

g r o u p

g e t g r n a m , g e t g r g i d

主机

/ e t c / h o s t s

< n e t d b . h >

h o s t e n t

g e t h o s t b y n a m e , g e t h o s t b y a d d r

网络

/ e t c / n e t w o r k s

< n e t d b . h >

n e t e n t

g e t n e t b y n a m e , g e t n e t b y a d d r

协议

/ e t c / p r o t o c o l s

< n e t d b . h >

p r o t o e n t

g e t p r o t o b y n a m e , g e t p r o t o b y n u m b e r

服务

/ e t c / s e r v i c e s

< n e t d b . h >

s e r v e n t

getservbyname, getservbyport

posted @ 2011-10-10 18:51  郭—大—侠  阅读(159)  评论(0编辑  收藏  举报