From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 25256 invoked from network); 2 Aug 2021 02:43:29 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 2 Aug 2021 02:43:29 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 3C31D9CAAE; Mon, 2 Aug 2021 12:43:27 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 51E019CA63; Mon, 2 Aug 2021 12:43:12 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (2048-bit key; unprotected) header.d=dartmouth.edu header.i=@dartmouth.edu header.b="zzSnxUqM"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id CE6349CA63; Mon, 2 Aug 2021 12:43:10 +1000 (AEST) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by minnie.tuhs.org (Postfix) with ESMTPS id 9DA459CA60 for ; Mon, 2 Aug 2021 12:43:09 +1000 (AEST) Received: by mail-wm1-f42.google.com with SMTP id m20-20020a05600c4f54b029024e75a15716so10079396wmq.2 for ; Sun, 01 Aug 2021 19:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dartmouth.edu; s=google1; h=mime-version:from:date:message-id:subject:to; bh=ook0R9IYbJd+6gdxLZnviNeVVgAVC3UBRzadfjPq6QE=; b=zzSnxUqMKUTrf0Qzh2Re6MuOIOOyz8CHbej5By4vejhkDBDxEtZ//tbfqQz6ETLBw1 bVPr5JF1AWiPu+3SGChejDG4kFAbdjUgN6KYjVQItMFPcafJ5zdX+Cy5zO/Kjv52gfmQ EUib9r8kmVWyvoRT0H5dTrJbUCYjPY/fOnOHmaiV6zQQADRUQPgdif5XAT0hACztasEV 98SDZKWUKc6CoejIOnUdedKfJCeVajyGA1WXV0yFVnWz8fzU7wfvWLqXoemTHuFD0+J/ 54mkkqvFkUgwuLX56zCwYpWxnVK6bbdceT4rED85a1S+YG8lKoy/Uf5HxO7ozCczXE7q rYGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ook0R9IYbJd+6gdxLZnviNeVVgAVC3UBRzadfjPq6QE=; b=eGHO5Su9tz559sc6THwqQzoR5y16lC0zfkc/X0okaQ5AaIQBtsuf1QMoTbAzHSKqXj bZiryRsoPaj6t3zg/WGch5rVxXmwOU4jFLjOVfLgQQjdbRlMJItCbTi+2UKdAUq49Wym p+hFMccg60r+oFnJsFXoflrL7hQtuJwwehlMUk6x5vU130aGE3KpP9ueaaw/+9WBVXQn 79bTCnLltnWIFgFbcHKdZ4tMwccEpfHPvtxgvXjja0ZdDPxIKRwpm0F4sklPp16AiQ7k TYjWK+6vyfuj20zeiqZ0Pt3TG1UmJ5BawTLzXdT1oRGTjiv1BwZWKvpA9EdCJG5hvzNG RHhA== X-Gm-Message-State: AOAM532Bdf0pWjQ3fbF7mDTTxatBC3vyb0QR0jk1sxMyQGJXaySwiBCy lrs7oXLOFEGVnsZK9e71wwfE1yOvpfEt0e88veGXP9BfjKASEw== X-Google-Smtp-Source: ABdhPJzhGGjl4y1TCxokVtoRr3lV1BnldrKYYZeQhoQTtuFtDahne15PTrWBiHs7XGYeowiCCmQxI/4rTPMxT7RyhBY= X-Received: by 2002:a7b:c94c:: with SMTP id i12mr10998835wml.148.1627872188048; Sun, 01 Aug 2021 19:43:08 -0700 (PDT) MIME-Version: 1.0 From: Douglas McIlroy Date: Sun, 1 Aug 2021 22:42:53 -0400 Message-ID: To: The Eunuchs Hysterical Society Content-Type: text/plain; charset="UTF-8" Subject: [TUHS] Systematic approach to command-line interfaces X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" > spawn() beats fork()[;] fork() should be deprecated Spawn is a further complication of exec, which tells what signals and file descriptors to inherit in addition to what arguments and environment variables to pass. Fork has a place. For example, Program 1 in www.cs.dartmouth.edu/~doug/sieve/sieve.pdf forks like crazy and never execs. To use spawn, the program would have to be split in three (or be passed a switch setting). While you may dismiss Program 1 as merely a neat demo, the same idea applies in parallelizing code for use in a multiprocessor world. Doug