|
|
1.1 root 1: /*
2: * pwd() - return the name of the current directory.
3: * We assume that the current directory never changes.
4: */
5:
6: #include "asd.h"
7: #include <libv.h>
8: #include <stdio.h>
9:
10: #define CHUNK 64
11:
12: char *
13: pwd(void)
14: {
15: register FILE *f;
16: static char *r;
17: static unsigned size;
18: register int n, c;
19:
20: if (r == NULL) {
21: f = popen ("pwd", "r");
22: schk ((char *) f);
23:
24: n = 0;
25: while ((c = getc (f)) != EOF) {
26: if (n >= size) {
27: size += CHUNK;
28: r = ralloc (r, size);
29: }
30: r[n++] = c;
31: }
32:
33: /* replace the trailing newline by a null */
34: r[n - 1] = '\0';
35:
36: pclose (f);
37: }
38:
39: return r;
40: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.