envuidgid.c
来自「daemontools-0.76.tar.gz是在linux环境下自动监控进程的」· C语言 代码 · 共 36 行
C
36 行
#include <sys/types.h>#include <pwd.h>#include "fmt.h"#include "strerr.h"#include "pathexec.h"#define FATAL "envuidgid: fatal: "void nomem(void){ strerr_die2x(111,FATAL,"out of memory");}char strnum[FMT_ULONG];const char *account;struct passwd *pw;int main(int argc,const char *const *argv){ account = *++argv; if (!account || !*++argv) strerr_die1x(100,"envuidgid: usage: envuidgid account child"); pw = getpwnam(account); if (!pw) strerr_die3x(111,FATAL,"unknown account ",account); strnum[fmt_ulong(strnum,pw->pw_gid)] = 0; if (!pathexec_env("GID",strnum)) nomem(); strnum[fmt_ulong(strnum,pw->pw_uid)] = 0; if (!pathexec_env("UID",strnum)) nomem(); pathexec(argv); strerr_die4sys(111,FATAL,"unable to run ",*argv,": ");}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?