master xplshn/aruu / cmd / posix / mkfifo.c
 1/* See LICENSE file for copyright and license details. */
 2
 3#include <sys/stat.h>
 4
 5#include <stdlib.h>
 6
 7#include "util.h"
 8
 9static void
10usage(void)
11{
12  eprintf("usage: %s [-m mode] name ...\n", argv0);
13}
14
15// ?man mkfifo: make fifos
16// ?man arguments: name ...
17// ?man create named pipes at specified paths
18int
19main(int argc, char *argv[])
20{
21  mode_t mode = 0666;
22  int    ret  = 0;
23
24  ARGBEGIN
25  {
26    // ?man -m:mode: specify mode or limit
27    case 'm':
28      mode = parsemode(EARGF(usage()), mode, umask(0));
29      break;
30    default:
31      usage();
32  }
33  ARGEND
34
35  if (!argc)
36    usage();
37
38  for (; *argv; argc--, argv++) {
39    if (mkfifo(*argv, mode) < 0) {
40      weprintf("mkfifo %s:", *argv);
41      ret = 1;
42    }
43  }
44
45  return ret;
46}