国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言編程中從密碼文件獲取數據的函數總結

2020-01-26 14:56:11
字體:
來源:轉載
供稿:網友

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:rootuid:0home:/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:shutdownuid:6home:/sbin

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 望奎县| 南城县| 萨迦县| 丁青县| 辽宁省| 措勤县| 赤城县| 杭锦旗| 南江县| 库伦旗| 新建县| 宁乡县| 孟连| 普兰店市| 漳平市| 永丰县| 昂仁县| 泸州市| 嵩明县| 崇左市| 田阳县| 青州市| 页游| 洪雅县| 古浪县| 仁化县| 枝江市| 湘西| 嘉鱼县| 类乌齐县| 安陆市| 金华市| 石台县| 新郑市| 普宁市| 武义县| 神农架林区| 吴忠市| 崇义县| 崇阳县| 凤城市|