#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> #include "config.h" int oflag=0; int days=60; int count(path) char *path; { DIR *dirp; struct dirent *de; struct stat st; time_t now; int total = 0; char path2[100],*f; dirp = opendir(path); if (dirp == 0) return 0; strcpy(path2, path); strcat(path2, "/"); f = (char *)strchr(path2, '\0'); now = time(NULL); for(de = readdir(dirp); de; de = readdir(dirp)) { int l = strlen(de->d_name); if (strcmp(de->d_name+l-2, ".o") == 0) { strcpy(f, de->d_name); if (stat(path2, &st) != -1) if (now - st.st_mtime < 60*24*60*days) total++; } } closedir(dirp); return total; } main(argc, argv) int argc; char *argv[]; { char path[1000]; path[0] = 0; while (*++argv) { if (**argv == '-') { ++*argv; switch(**argv) { case 'd': days = atoi(*++argv); break; case 'o': oflag++; break; default: fprintf(stderr, "%s: Illegal switch '%c'\n", **argv); abort(); } } else strcpy(path, *argv); } if (path[0] == 0) sprintf(path, "%s/%s", MUD_LIB, PLAYER_DIR); printf("%d\n", count(path)); }