• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言中操作密码文件的一些函数总结

C语言中操作密码文件的一些函数总结

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言密码函数,c语言密码程序,c语言密码隐藏,c语言密码,c语言密码输入等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C语言setpwent()函数:从头读取密码文件中的账号数据

头文件:

 #include <pwd.h> #include <sys/types.h>
</div>

定义函数:

void setpwent(void);
</div>

函数说明:setpwent()用来将getpwent()的读写地址指回密码文件开头。

范例

#include <pwd.h>
#include <sys/types.h>
main()
{
 struct passwd *user;
 int i;
 for(i = 0; i < 4; i++)
 {
  user = getpwent();
  printf("%s :%d :%d :%s:%s:%s\n", user->pw_name, user->pw_uid, user->pw_gid,
  user->pw_gecos, user->pw_dir, user->pw_shell);
 }

 setpwent();
 user = getpwent();
 printf("%s :%d :%d :%s:%s:%s\n", user->pw_name, user->pw_uid, user->pw_gid,
 user->pw_gecos, user->pw_dir, user->pw_shell);
 endpwent();
}

</div>

执行结果:

root:0:0:root:/root:/bin/bash
bin:1:1:bin:/bin
daemon:2:2:daemon:/sbin
adm:3:4:adm:/var/adm
root:0:0:root:/root:/bin/bash
</div>

C语言getpwent()函数:从密码文件中取得账号的数据

头文件:

#include <pwd.h> #include <sys/types.h>
</div>

定义函数:

strcut passwd * getpwent(void);
</div>

函数说明:getpwent()用来从密码文件(/etc/passwd)中读取一项用户数据, 该用户的数据以passwd 结构返回. 第一次调用时会取得第一位用户数据, 之后每调用一次就会返回下一项数据, 直到已无任何数据时返回NULL。

passwd 结构定义如下:

struct passwd
{
 char * pw_name; //用户账号
 char * pw_passwd; //用户密码
 uid_t pw_uid; //用户识别码
 gid_t pw_gid; //组识别码
 char * pw_gecos; //用户全名
 char * pw_dir; //家目录
 char * pw_shell; //所使用的shell 路径
};
</div>

返回值:返回 passwd 结构数据, 如果返回NULL 则表示已无数据, 或有错误发生.

附加说明:getpwent()在第一次调用时会打开密码文件, 读取数据完毕后可使用endpwent()来关闭该密码文件。

错误代码:
ENOMEM:内存不足, 无法配置passwd 结构。

范例

#include <pwd.h>
#include <sys/types.h>
main()
{
 struct passwd *user;
 while((user = getpwent()) != 0)
 {
   printf("%s:%d:%d:%s:%s:%s\n", user->pw_name, user->pw_uid, user->pw_gid,
  user->pw_gecos, user->pw_dir, user->pw_shell);
 }
 endpwent();
}
</div>

执行:

root:0:0:root:/root:/bin/bash
bin:1:1:bin:/bin:
daemon:2:2:daemon:/sbin:
adm:3:4:adm:/var/adm:
lp:4:7:lp:/var/spool/lpd:
sync:5:0:sync:/sbin:/bin/sync
shutdown:6:0:shutdown:/sbin:/sbin/shutdown
halt:7:0:halt:/sbin:/sbin/halt
mail:8:12:mail:/var/spool/mail:
news:9:13:news:var/spool/news
uucp:10:14:uucp:/var/spool/uucp:
operator:11:0:operator :/root:
games:12:100:games:/usr/games:
gopher:13:30:gopher:/usr/lib/gopher-data:
ftp:14:50:FTP User:/home/ftp:
nobody:99:99:Nobody:/:
xfs:100:101:X Font Server: /etc/Xll/fs:/bin/false
gdm:42:42:/home/gdm:/bin/bash
kids:500:500: : /home/kids:/bin/bash
</div>

C语言endpwent()函数:关闭文件(关闭密码文件)

头文件:

#include <pwd.h> #include <sys/types.h>
</div>

定义函数:

void endpwent(void);
</div>

函数说明:endpwent()用来关闭由getpwent()所打开的密码文件。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言中操作密码文件的一些函数总结

相关文章

  • 2017-05-28排列和组合算法的实现方法_C语言经典案例
  • 2017-05-28VC++中HTControl控件类之CHTRichEdit富文本编辑控件实例
  • 2017-05-28编译错误error: stray ‘\343’in program的解决方法
  • 2017-05-28C++11中lambda、std::function和std:bind详解
  • 2017-05-28C语言中快速排序和插入排序优化的实现
  • 2017-05-28C语言的getc()函数和gets()函数的使用对比
  • 2017-05-28C++ 双链表的基本操作(详解)
  • 2017-05-28C++设计模式之单例模式
  • 2017-05-28C++中Operator类型强制转换成员函数解析
  • 2017-05-28C语言 二叉查找树性质详解及实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c++实现逐行读取配置文件写入内存的示例
    • C++中的异常处理机制详解
    • 用typedef定义类型的总结分析
    • C++11的新特性简单汇总介绍 (一)
    • C语言统计字符个数代码分享
    • C语言 以字符串的形式读写文件详解及示例代码
    • 详解C语言中的符号常量、变量与算术表达式
    • C++实现strcmp字符串比较的深入探讨
    • 浅析C语言中的数组及字符数组
    • 关于c++ 智能指针及 循环引用的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有