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.