• 系统数据文件和信息之组文件


    UNIX组文件(POSIX.1称其为组数据库)包含了表6-3中所示的字段。这些字段包含在<grp.h>中所定义的group结构中。

                                                                 表6-3 /etc/group文件中的字段

    20131026150430828

    字段gr_mem是一个指针数组,其中每个指针各指向一个属于该组的用户名。该数组以空指针结尾。

    可以用下列两个由POSIX.1定义的函数来查看组名或数值组ID。

    #include <grp.h>
    struct group *getgrgid( gid_t gid );
    struct group *getgrnam( const char *name );
    两个函数返回值:若成功则返回指针,若出错则返回NULL

    如同对口令文件进行操作的函数一样,这两个函数也返回指向一个静态变量的指针,在每次调用时都重写该静态变量。

    如果需要搜索整个组文件,则需要使用另外几个函数。下列三个函数类似于针对口令文件的三个函数。

    #include <grp.h>
    
    struct group *getgrent( void );
    返回值:若成功则返回指针,若出错或到达文件结尾则返回NULL
    
    void setgrent( void );
    void endgrent( void );

    setgrent函数打开组文件(如若它尚未被打开)并反绕(rewinds  to  the  beginning)它。getgrent函数从组文件中读下一个记录,如若该文件尚未打开则先打开它。endgrent函数关闭组文件。

    本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

  • 相关阅读:
    java.lang.UnsatisfiedLinkError:no dll in java.library.path终极解决之道
    JNA
    Java发邮件带附件测试通过
    Java-JDBC调用批处理、存储过程、事务
    Java的JDBC事务详解
    对只转发结果集的无效操作:last
    Servlet 监听器
    TOMCAT6热部署配置
    使用命名参数处理 CallableStatement
    如何在JTable中动态添加一行
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3507365.html
Copyright © 2020-2023  润新知