文件2

来源:互联网 发布:东京工业大学 知乎 编辑:程序博客网 时间:2024/06/06 01:24

#Include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

1int stat(const char *path,struct stat *buf);

2int fstat(int fd,struct stat *buf);

3int lstat(const char *path,struct stat *buf);


#include <pwd.h>

4struct passwd *getpwuid(uid_t uid)//根据uid来获得用户信息

struct passwd

{

   char *pw_name;//usrname

   char *pw_passwd;//userword

   uid_t pw_uid;//  user ID

   gid_t pw_gid; //group ID

   char *pw_gecos; //user information

   char *pw_dir;//home diectory

   char *pw_shell;// shell

};


5struct group *getgrgid(gid_t gid)//根据组ID来获得信息

struct group

{

 char *gr_name;

 char *gr_passwd;

 gid_t  gr_gid;

 char **gr_mem;

};


例子:

#include<stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pwd.h>
#include <grp.h>
int main(int argc,char *argv[])
{
struct stat filestat;
lstat(argv[1],&filestat);
struct passwd *a=(struct passwd *)getpwuid(filestat.st_uid);
struct group *gp;
gp=getgrgid(filestat.st_gid);
printf("gid name is:%s\n",gp->gr_name);
printf("username :%s\n",a->pw_name);
printf("passwd :%s\n",a->pw_passwd);
printf("uid=%d\n",a->pw_uid);
printf("gid=%d\n",a->pw_gid);
printf("shell=%s\n",a->pw_shell);
printf("dir=%s\n",a->pw_dir);
return 0;
}


0 0
原创粉丝点击