except.c

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

C
40
字号
//实用工具程序之一,作用:过去常用来修改一个调用程序的退出编码

#include "fork.h"#include "strerr.h"#include "wait.h"#include "error.h"#include "exit.h"#define FATAL "except: fatal: "void main(argc,argv)int argc;char **argv;{  int pid;  int wstat;  if (!argv[1])    strerr_die1x(100,"except: usage: except program [ arg ... ]");  pid = fork();  if (pid == -1)    strerr_die2sys(111,FATAL,"unable to fork: ");  if (pid == 0) {    execvp(argv[1],argv + 1);    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: _exit(100);    case 111: strerr_die2x(111,FATAL,"temporary child error");    default: _exit(0);  }}

⌨️ 快捷键说明

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