bouncesaying.c

来自「linux下qmail的源码 本人加了一些注释」· C语言 代码 · 共 44 行

C
44
字号
//实用工具程序之一,作用是允许用户将消息转发给程序或者程序不可用时反弹回信息

#include "fork.h"#include "strerr.h"#include "error.h"#include "wait.h"#include "sig.h"#include "exit.h"#define FATAL "bouncesaying: fatal: "void main(argc,argv)int argc;char **argv;{  int pid;  int wstat;  if (!argv[1])    strerr_die1x(100,"bouncesaying: usage: bouncesaying error [ program [ arg ... ] ]");  if (argv[2]) {    pid = fork();    if (pid == -1)      strerr_die2sys(111,FATAL,"unable to fork: ");    if (pid == 0) {      execvp(argv[2],argv + 2);      if (error_temp(errno)) _exit(111);      _exit(100);    }    if (wait_pid(&wstat,pid) == -1)      strerr_die2x(111,FATAL,"wait failed");    if (wait_crashed(wstat))      strerr_die2x(111,FATAL,"child crashed");    switch(wait_exitcode(wstat)) {      case 0: break;      case 111: strerr_die2x(111,FATAL,"temporary child error");      default: _exit(0);    }  }  strerr_die1x(100,argv[1]);}

⌨️ 快捷键说明

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