/* Copyright (c) 1979 Regents of the University of California */ #include #include #include #include /* * Look for a particular file name in everyone's home directory. * * Syntax: fleece name * Author: Kurt Shoens (UCB) 1/11/79 */ char *pwfile = "/etc/passwd"; main(argc, argv) char **argv; { char namebuf[BUFSIZ], home[BUFSIZ], word[BUFSIZ]; register char *cp; struct stat sbuf; extern char _sobuf[]; if (argc < 2) { fprintf(stderr, "Usage: %s name ...\n", *argv); exit(1); } setbuf(stdout, _sobuf); strcpy(word, argv[1]); if (freopen(pwfile, "r", stdin) == NULL) { perror(pwfile); exit(1); } while (gets(namebuf) != NULL) { gethome(namebuf, home); cp = home + strlen(home); if (cp[-1] != '/') *cp++ = '/'; strcpy(cp, word); if (stat(home, &sbuf) >= 0) puts(home); } exit(0); } /* * Find from the given passwd line the user's home directory * and copy right. */ gethome(pwline, home) char pwline[], home[]; { register char *cp, *cp2; register int c; for (cp = pwline, c = 0; c < 5 && *cp; c += *cp++ == ':') ; for (cp2 = home; *cp && *cp != ':'; *cp2++ = *cp++) ; *cp2 = 0; }