unix高级环境编程 例子 代码实现练习 第六章:系统数据文件和信息

来源:互联网 发布:淘宝免费其他流量来源 编辑:程序博客网 时间:2024/05/16 13:50

程序清单 6-1 getpwnam函数

/** * 程序清单 6-1 getpwnam函数 P135 * * zy: * 返回口令文件,也就是/etc/passwd文件中的每一项。 * 本列我们写一个函数,调用函数可以得到与传入参数name相同的某一个口令文件的所有项 * 实际上getpwnam函数已经被实现好了,我们直接调用即可,但是这里我们只是写出了其一个实现 */#include <pwd.h>//header shall provide a definition for struct passwd#include <stddef.h>//定义了一些标准宏以及类型#include <string.h>struct passwd *getpwnam(const char *name){struct passwd *ptr;setpwent();//自我保护的行为,万一之前passwd被打开就不好了while((ptr=getpwent())!=NULL){if(strcmp(name,ptr->pw_name)==0) {break;}}endpwent();return ptr;}int main(int argc, char *argv[]) {struct passwd *ptr;ptr=getpwnam("asd");printf("%s %s \n",ptr->pw_name,ptr->pw_shell);}




0 0
原创粉丝点击