1: /* Copyright (c) 1979 Regents of the University of California */
   2: /*
   3:  * Remove stuff in /tmp owned by the invoker.
   4:  */
   5: #include <retrofit.h>
   6: #include <sys/types.h>
   7: #include <sys/stat.h>
   8: #include <stdio.h>
   9: #include <sys/dir.h>
  10: 
  11: struct  direct  dirent[2];
  12: 
  13: main()
  14: {
  15:     struct stat stbuf;
  16:     register int uid;
  17: 
  18:     uid = getuid();
  19:     if (chdir("/tmp") < 0) {
  20:         perror("/tmp");
  21:         exit(1);
  22:     }
  23:     if (freopen(".", "r", stdin) == NULL)
  24:         exit(1);
  25:     while (fread((char *) &dirent[0], sizeof (struct direct), 1, stdin) == 1) {
  26: #define ent dirent[0]
  27:         if (ent.d_ino == 0)
  28:             continue;
  29:         if (stat(ent.d_name, &stbuf))
  30:             continue;
  31:         if (!strcmp(ent.d_name, ".") || !strcmp(ent.d_name, ".."))
  32:             continue;
  33:         if (stbuf.st_uid != uid)
  34:             continue;
  35:         if ((stbuf.st_mode & S_IFMT) != S_IFREG)
  36:             continue;
  37:         if (unlink(ent.d_name))
  38:             continue;
  39:         printf("%s\n", ent.d_name);
  40:     }
  41:     exit(0);
  42: }

Defined functions

main defined in line 13; never used

Defined variables

dirent defined in line 11; used 2 times

Defined macros

ent defined in line 26; used 6 times
Last modified: 1979-05-09
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 719
Valid CSS Valid XHTML 1.0 Strict