⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 id.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef LINTstatic char *sccsid = "@(#)id.c	4.1	(ULTRIX)	7/17/90";#endif LINT/* * Modification History * *	April 4, 1989  Pradeep Chetal (chetal) *	  - Added [-gnru] options *	    Made posix compatible. */#include <stdio.h>#include <pwd.h>#include <grp.h>extern int optind;extern char *optarg;int gflag, uflag, rflag, nflag;char *progName;main(argc, argv)int argc;char **argv;{  int c, errflag = 0;  int uid, gid, euid, egid;  static char stdbuf[BUFSIZ];  char *cp;  extern char *rindex();  struct passwd *getpwuid();  struct group *getgrgid();  setbuf (stdout, stdbuf);  progName = (cp = rindex(argv[0],'/')) ? ++cp : argv[0];  while ((c = getopt(argc,argv,"grnu")) != EOF) {    switch(c) {    case 'g':       uflag ? errflag++ : gflag++ ; break;    case 'u':       gflag ?  errflag++ : uflag++; break;    case 'n':       nflag++; break;    case 'r':       rflag++; break;    default:        usage();    }  }    if (errflag)    usage();  /* -r and/or -n have to be used with one of -u *or* -g */  if ((rflag || nflag) && !uflag && !gflag)    usage();  uid = getuid();  gid = getgid();  euid = geteuid();  egid = getegid();  setpwent();  setgrent();    if (!gflag && !uflag && !rflag && !nflag) {	/* no options, default */    printf("uid=%d(%s)", uid, getpwuid(uid)->pw_name);    printf(" gid=%d(%s)", gid, getgrgid(gid)->gr_name);    if (uid != euid)      printf(" euid=%d(%s)", euid, getpwuid(euid)->pw_name);    if (gid != egid)      printf(" egid=%d(%s)", egid, getgrgid(egid)->gr_name);    putchar ('\n');    exit(0);  }    /* Else print only what is asked for */  if (nflag) {    printf("%s\n", 	 uflag ? (rflag ? getpwuid(uid)->pw_name : getpwuid(euid)->pw_name)	       : (rflag ? getgrgid(gid)->gr_name : getgrgid(egid)->gr_name));  } else {    printf("%d\n",	 uflag ? (rflag ? uid : euid)	       : (rflag ? gid : egid));  }  exit(0);}/* * Usage error message */usage(){  fprintf(stderr, "usage: %s [-{g|u}[rn]]\n", progName);  exit(1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -