UNIX环境高级编程之系统数据文件和信息

6.2 口令文件

1. 查询用户信息

#include <pwd.h>

struct passwd* getpwuid(uid_t uid);

struct passwd* getpwnam(const char* name); //成功执行返回指针,出错返回NULL

2. 访问/etc/passwd文件

#include <pwd.h>

struct passwd* getpwent(void); //成功执行返回指针,出错或者到达文件结尾返回NULL

void setpwent(void);

void endpwent(void);

3. 访问阴影口令

#include <shadow.h>

struct spwd* getspnam(const char* name);

struct spwd* getspent(void); //两个函数返回值:成功执行返回指针,出错返回NULL

void setspent(void);

void endspent(void);

4. 查询组信息

#include <grp.h>

struct group* getgrgid(gid_t gid);

struct group* getgrnam(const char* name); //两个函数返回值:成功执行返回指针,出错返回NULL

5. 访问组文件

#include <grp.h>

struct group* getgrent(void); //成功执行返回指针,出错或者到达文件结尾返回NULL

void setgrent(void);

void getgrent(void);

6. 获取和设置附加组ID

#include <unistd.h>

int getgroups(int getsetsize,gid_t grouplist[]); //若成功执行返回附加组ID,失败返回-1

#include <grp.h>

int setgroups(int ngroups,const  gid_t grouplist[]);

int initgroups(const char* username, gid_t basegid); // 两个函数返回值:成功执行返回0,失败返回-1

6.9  系统标识

1. 获取当前主机和操作系统信息

#include <sys/utsname.h>

int uname(struct utsname* name); //若成功执行返回0,失败返回-1

6.10 时间和日期例程

1. 获取当前时间和日期

#include <time.h>

time_t time(time_t* calptr); //成功实行返回时间值,出错返回-1

2. 返回更精确的时间

#include <sys/time.h>

int gettimeofday(struct timeval* restrict tp, void* restrict tzp); //总是返回0

3.返回结构化的时间和日期

#include <time.h>

struct tm* gmtime(const time_t* calptr);

struct tm* localtime(const time_t* calptr); //返回指针

4. 将结构化时间转换成距离1970.1.1 00:00:00的秒数

#include <time.h>

time_t mktime(struct tm* tmptr); //成功执行返回日历时间,出错返回-1

5. 将日历时间转换成字符串表示的时间

#include <time.h>

char* asctime(const struct tm* tmptr);

char* ctime(const time_t* calptr); // 返回以BULL结尾的字符串指针

6. 返回格式化的时间

#include <time.h>

size_t strftime(char* restrict buf, size_t maxsize, const char* restrict format, cosnt struct tm* restrict tmptr);

// 若有空间则返回存入数组的字符数,否则返回0

image

posted on 2013-07-11 09:38  _foolish  阅读(189)  评论(0编辑  收藏  举报

导航