程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C說話編程中從暗碼文件獲得數據的函數總結

C說話編程中從暗碼文件獲得數據的函數總結

編輯:關於C++

C說話編程中從暗碼文件獲得數據的函數總結。本站提示廣大學習愛好者:(C說話編程中從暗碼文件獲得數據的函數總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話編程中從暗碼文件獲得數據的函數總結正文


C說話getpw()函數:獲得指定用戶的暗碼文件數據
頭文件:

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

界說函數:

int getpw(uid_t uid, char *buf);

函數解釋:getpw()會從/etc/passwd中查找相符參數uid所指定的用戶賬號數據, 找不到相干數據就前往-1。

所前往的buf 字符串格局以下:
賬號:暗碼:用戶辨認碼(uid):組辨認碼(gid):全名:根目次:shell

前往值:前往 0 表現勝利, 有毛病產生時前往-1.

附加解釋
1. getpw()會有潛伏的平安性成績, 請盡可能應用其余函數代替。
2. 應用shadow 的體系已把用戶暗碼抽出/etc/passwd, 是以應用getpw()獲得的暗碼將為"x"。

典范

#include <pwd.h>
#include <sys/types.h>
main()
{
  char buffer[80];
  getpw(0, buffer);
  printf("%s\n", buffer);
}

履行:

root:x:0:0:root:/root:/bin/bash


C說話getpwnam()函數:從暗碼文件中獲得指定賬號的數據
頭文件:

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

界說函數:

struct passwd * getpwnam(const char * name);

函數解釋:getpwnam()用來一一搜刮參數name 指定的賬號稱號, 找到時便將該用戶的數據以passwd 構造前往。passwd 構造請參考getpwent()。

前往值:前往 passwd 構造數據, 假如前往NULL 則表現已有數據, 或有毛病產生.

典范

/*獲得root 賬號的辨認碼和根目次 */
#include <pwd.h>
#include <sys/types.h>
main()
{
  struct passwd *user;
  user = getpwnam("root");
  printf("name:%s\n", user->pw_name);
  printf("uid:%d\n", user->pw_uid);
  printf("home:%s\n", user->pw_dir);
}

履行:

name:root
uid:0
home:/root

C說話getpwuid()函數:從暗碼文件中獲得指定uid的數據
頭文件:

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

界說函數:

struct passwd * getpwuid(uid_t uid);

函數解釋:getpwuid()用來一一搜刮參數uid 指定的用戶辨認碼, 找到時便將該用戶的數據以構造前往構造請參考將該用戶的數據以passwd 構造前往. passwd 構造請參考getpwent()。

前往值:前往 passwd 構造數據, 假如前往NULL 則表現已有數據, 或許有毛病產生.

典范

#include <pwd.h>
#include <sys/types.h>
main()
{
  struct passwd *user;
  user= getpwuid(6);
  printf("name:%s\n", user->pw_name);
  printf("uid:%d\n", user->pw_uid);
  printf("home:%s\n", user->pw_dir);
}

履行:

name:shutdown
uid:6
home:/sbin

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved