欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結

 更新時間:2015年08月29日 12:03:15   投稿:goldensun  
這篇文章主要介紹了C語言編程中從密碼文件獲取數(shù)據(jù)的函數(shù)總結,包括getpw()函數(shù)和getpwnam()函數(shù)以及getpwuid()函數(shù),需要的朋友可以參考下

C語言getpw()函數(shù):取得指定用戶的密碼文件數(shù)據(jù)
頭文件:

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

定義函數(shù):

int getpw(uid_t uid, char *buf);

函數(shù)說明:getpw()會從/etc/passwd中查找符合參數(shù)uid所指定的用戶賬號數(shù)據(jù), 找不到相關數(shù)據(jù)就返回-1。

所返回的buf 字符串格式如下:
賬號:密碼:用戶識別碼(uid):組識別碼(gid):全名:根目錄:shell

返回值:返回 0 表示成功, 有錯誤發(fā)生時返回-1.

附加說明
1. getpw()會有潛在的安全性問題, 請盡量使用別的函數(shù)取代。
2. 使用shadow 的系統(tǒng)已把用戶密碼抽出/etc/passwd, 因此使用getpw()取得的密碼將為"x"。

范例

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

執(zhí)行:

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


C語言getpwnam()函數(shù):從密碼文件中取得指定賬號的數(shù)據(jù)
頭文件:

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

定義函數(shù):

struct passwd * getpwnam(const char * name);

函數(shù)說明:getpwnam()用來逐一搜索參數(shù)name 指定的賬號名稱, 找到時便將該用戶的數(shù)據(jù)以passwd 結構返回。passwd 結構請參考getpwent()。

返回值:返回 passwd 結構數(shù)據(jù), 如果返回NULL 則表示已無數(shù)據(jù), 或有錯誤發(fā)生.

范例

/*取得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);
}

執(zhí)行:

name:root
uid:0
home:/root

C語言getpwuid()函數(shù):從密碼文件中取得指定uid的數(shù)據(jù)
頭文件:

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

定義函數(shù):

struct passwd * getpwuid(uid_t uid);

函數(shù)說明:getpwuid()用來逐一搜索參數(shù)uid 指定的用戶識別碼, 找到時便將該用戶的數(shù)據(jù)以結構返回結構請參考將該用戶的數(shù)據(jù)以passwd 結構返回. passwd 結構請參考getpwent()。

返回值:返回 passwd 結構數(shù)據(jù), 如果返回NULL 則表示已無數(shù)據(jù), 或者有錯誤發(fā)生.

范例

#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);
}

執(zhí)行:

name:shutdown
uid:6
home:/sbin

相關文章

  • C++ Effective詳解

    C++ Effective詳解

    下面小編就為大家?guī)硪黄狢++ Effective的文章。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-08-08
  • C++實現(xiàn)班車管理系統(tǒng)課程設計

    C++實現(xiàn)班車管理系統(tǒng)課程設計

    這篇文章主要為大家詳細介紹了C++實現(xiàn)班車管理系統(tǒng)課程設計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++實現(xiàn)基于時序公平的讀寫鎖詳解

    C++實現(xiàn)基于時序公平的讀寫鎖詳解

    讀寫鎖與普通的互斥鎖的區(qū)別在于有兩種上鎖方式:讀鎖和寫鎖,不用的用戶對同一個讀寫鎖獲取讀鎖是非互斥的,其他情況則是互斥的,本文小編將給大家詳細介紹C++實現(xiàn)基于時序公平的讀寫鎖,需要的朋友可以參考下
    2023-10-10
  • 詳解基于Matlab的空心散點檢測

    詳解基于Matlab的空心散點檢測

    這篇文章主要介紹了如何利用Matlab實現(xiàn)空心散點檢測,文中的示例代碼講解詳細,對我們學習Matlab有一定的幫助,感興趣的可以跟隨小編了解一下
    2022-02-02
  • 解析c++中的默認operator=操作的詳解

    解析c++中的默認operator=操作的詳解

    本篇文章是對c++中的默認operator=操作的應用進行了詳細的分析介紹。需要的朋友參考下
    2013-05-05
  • VC動態(tài)生成菜單項的實現(xiàn)方法

    VC動態(tài)生成菜單項的實現(xiàn)方法

    這篇文章主要介紹了VC動態(tài)生成菜單項的實現(xiàn)方法,在桌面應用程序開發(fā)中常會用到的一個功能,需要的朋友可以參考下
    2014-08-08
  • QT布局管理詳解QVBoxLayout與QHBoxLayout及QGridLayout的使用

    QT布局管理詳解QVBoxLayout與QHBoxLayout及QGridLayout的使用

    在這篇文章中,你將知道水平布局、垂直布局、網(wǎng)格布局如何輕松上手,以純代碼方式展示。對齊方式,大小設置,圖片頭像匹配標簽,布局器里面的組件大小隨意切換大小,認真看完這篇文章,QT布局管理器熟練使用
    2022-06-06
  • 2~62位任意進制轉換方法(c++)

    2~62位任意進制轉換方法(c++)

    下面小編就為大家?guī)硪黄?~62位任意進制轉換方法(c++)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • C語言實現(xiàn)掃雷小項目

    C語言實現(xiàn)掃雷小項目

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷小項目,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • c/c++獲取系統(tǒng)時間函數(shù)的方法示例

    c/c++獲取系統(tǒng)時間函數(shù)的方法示例

    這篇文章主要介紹了c/c++獲取系統(tǒng)時間函數(shù)的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02

最新評論