|
|
1.1 root 1: /*
2: * This routine is compatible with the Unix T/S system call uname,
3: * which figures out the name of the local system.
4: * However, we do it by reading the file /usr/include/whoami.h.
5: * This avoids having to recompile uucp for each site and hence
6: * avoids having to distribute the source to uucp to people who
7: * have only binary licenses.
8: */
9:
10: static char *SccsId = "@(#)uname.c 2.4 5/3/83";
11:
12: #include "params.h"
13:
14:
15: #ifdef UNAME
16: # define DONE
17: #endif
18:
19: #ifdef GHNAME
20: uname(uptr)
21: struct utsname *uptr;
22: {
23: gethostname(uptr->nodename, sizeof (uptr->nodename));
24: }
25: # define DONE
26: #endif
27:
28: #ifndef DONE
29: #define HDRFILE "/etc/whoami.h"
30:
31: uname(uptr)
32: struct utsname *uptr;
33: {
34: char buf[BUFSIZ];
35: FILE *fd;
36:
37: fd = fopen(HDRFILE, "r");
38: if (fd == NULL) {
39: fprintf(stderr, "Cannot open %s\n", HDRFILE);
40: exit(1);
41: }
42:
43: for (;;) { /* each line in the file */
44: if (fgets(buf, sizeof buf, fd) == NULL) {
45: fprintf(stderr, "no sysname in %s\n", HDRFILE);
46: fclose(fd);
47: exit(2);
48: }
49: if (sscanf(buf, "#define sysname \"%[^\"]\"", uptr->nodename) == 1) {
50: fclose(fd);
51: return;
52: }
53: }
54: }
55: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.