This is mountod.c in view mode; [Download] [Up]
/* mountod.c - mount an od in argv[1], change owner to user */ #include <stdio.h> #define UNIT "0a" /* Default unit number */ #define DEVICE "od" /* Default (only available) device name */ #define DEVDIR "/dev" /* Default (only available) device directory */ #define MOUNT "/usr/etc/mount" /* Command for mounting filesystem */ #define MAX(x, y) \ (x > y ? x : y) char *getenv(); main(int argc, char *argv[]) { char *cmdbuf; char *PgmName; char *unit; char *user; PgmName = basename(argv[0]); /* So messages look nice */ if ((argc > 3) || (argc < 2)){ (void)fprintf(stderr, "%s: wrong number of arguments\n", PgmName); (void)fprintf(stderr, "Usage: %s directory [UNIT]\n", PgmName); (void)fprintf(stderr, "\tUNIT is the OD unit number (e.g., 0a) to be mounted on directory\n", DEVDIR); exit(1); } else if (argc == 3) { /* Two argument provided */ unit = argv[2]; } else { /* One argument provided; use default unit */ unit = UNIT; } cmdbuf = (char *)malloc(1024); (void)sprintf(cmdbuf, "%s %s/%s%s %s", MOUNT, DEVDIR, DEVICE, unit, argv[1]); if (0 != system(cmdbuf)) { (void)fprintf(stderr, "%s: problems mounting %s on %s.\n", PgmName, unit, argv[1]); exit(1); } if (user = getenv ("USER")) { (void)sprintf (cmdbuf, "/usr/etc/chown %s %s", user, argv[1]); if (0 != system(cmdbuf)) { (void)fprintf(stderr, "%s: problems with chown\n", PgmName); exit (2); } /* end if command didn't work */ } else { fprintf (stderr, "%s: environment variable USER not defined\n", PgmName); exit (3); } /* end if USER in environment var */ exit(0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.