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

📄 fork.h

📁 《CODE READING》配套书源代码 《CODE READING》配套书源代码
💻 H
字号:
// Fork.h -*- C++ -*- socket library// Copyright (C) 1992-1996 Gnanasekaran Swaminathan <gs4t@virginia.edu>//// Permission is granted to use at your own risk and distribute this software// in source and  binary forms provided  the above copyright notice and  this// paragraph are  preserved on all copies.  This software is provided "as is"// with no express or implied warranty.//// Version: 12Jan97 1.11#ifndef FORK_H#define FORK_H#include <unistd.h>#include <sys/types.h>#include <sys/signal.h>class Fork { public:  class KillForks {  public:    KillForks () {}    ~KillForks ();  };  class ForkProcess {    friend Fork::KillForks::~KillForks ();    static void infanticide_reason (pid_t pid, int status);    static void reaper_nohang (int);    static ForkProcess* list;  public:    pid_t          pid;    const bool     kill_child;    const bool     reason;    ForkProcess*   next;    ForkProcess (bool kill, bool give_reason);    ~ForkProcess ();    void           kill_process () const;    void           reap_child () const;    static void    commit_suicide (int);  }; private:  static KillForks killall;  ForkProcess* process;  Fork (Fork&);             // no copy constructor definition provided  Fork& operator = (Fork&); // no assignment operator definition provided public:  Fork (bool kill = 0, bool reason = 0)    : process (new ForkProcess (kill, reason)) {}  ~Fork ();  int  is_child () const { return process->pid == 0; }  int  is_parent () const { return process->pid > 0; }  int  process_id () const { return process->pid; }  static void suicide_signal (int signo = SIGTERM);};#endif // FORK_H

⌨️ 快捷键说明

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