From 36783854f44b3bb6061fa8b08aea7059678c02d6 Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Tue, 25 Oct 2016 02:05:37 -0400 Subject: [PATCH] gitignore for build artifacts and executables --- .gitignore | 4 ++ README.md | 38 ++++++------ dc | Bin 13204 -> 0 bytes dc.o | Bin 7872 -> 0 bytes dc2 | Bin 14394 -> 0 bytes dc2.o | Bin 10540 -> 0 bytes dircount.cc | 152 ++++++++++++++++++++++----------------------- dircount_v2.cc | 164 ++++++++++++++++++++++++------------------------- 8 files changed, 181 insertions(+), 177 deletions(-) create mode 100644 .gitignore delete mode 100755 dc delete mode 100644 dc.o delete mode 100755 dc2 delete mode 100644 dc2.o diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4bdfc2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +dc +dc2 +dc.o +dc2.o diff --git a/README.md b/README.md index 765b546..bccae29 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ -# Dircount assignment -## CS426 - -1 - prints every full pathname - -1 - prints a [f] or a [d] next to the path depending on type - -1 - counts the total number of files - -1 - counts the total number of directories - -1 - Never count the same file twice, even if there are links. - -1 - does not go into an infinite loop even if the diretcory structure has loops - -1 - prints the total on disk space used. (NOT the sum of all the file sizes) - --1 - Each day after Wed Oct 26th. - +# Dircount assignment +## CS426 + +1 - prints every full pathname + +1 - prints a [f] or a [d] next to the path depending on type + +1 - counts the total number of files + +1 - counts the total number of directories + +1 - Never count the same file twice, even if there are links. + +1 - does not go into an infinite loop even if the diretcory structure has loops + +1 - prints the total on disk space used. (NOT the sum of all the file sizes) + +-1 - Each day after Wed Oct 26th. + diff --git a/dc b/dc deleted file mode 100755 index b17c5ab9043151f1d13af69355da4739106ec466..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13204 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 diff --git a/dc2.o b/dc2.o deleted file mode 100644 index 472b5f844085ffbc3b03ca18b0103a8f222203b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10540 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 diff --git a/dircount.cc b/dircount.cc index 081a1e7..af21731 100755 --- a/dircount.cc +++ b/dircount.cc @@ -1,76 +1,76 @@ -#include -#include -#include -#include -#include -#include -#include -using namespace std; - -class Hashtable { - unordered_map htmap; -public: - void put(ino_t key, bool value) { htmap[key] = value; } - bool get(ino_t key) { return htmap[key]; } -}; - -int file_cnt = 0, link_cnt = 0, dir_cnt = 0; -unsigned long space_used = 0; -struct stat buf; -Hashtable ht; - -void listdir (const char *name) { - DIR *dir; - struct dirent *entry; - - if (!(dir = opendir(name))) return; - if (!(entry = readdir(dir))) return; - - do { - if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; - if (entry->d_type == DT_DIR) { - // if (ht.get(&entry->d_ino)) continue; - // ht.put(&entry->d_ino, true); - dir_cnt++; - char path[4096]; - int len = snprintf(path, sizeof(path)-1, "%s/%s", name, entry->d_name); - path[len] = 0; - printf("[d] %s/%s\n", name, entry->d_name); - listdir(path); - } - else { - if (ht.get(entry->d_ino)) continue; - - if (entry->d_type == DT_LNK) { - link_cnt++; - printf("[l] %s/%s\n", name, entry->d_name); - - char path[4096]; - int len = snprintf(path, sizeof(path) - 1, "%s/%s", name, entry->d_name); - path[len] = 0; - stat(path, &buf); - space_used += buf.st_blocks * 512; - } - else{ - file_cnt++; - printf("[f] %d %s/%s\n", (int)entry->d_ino, name, entry->d_name); - - char path[4096]; - int len = snprintf(path, sizeof(path) - 1, "%s/%s", name, entry->d_name); - path[len] = 0; - stat(path, &buf); - space_used += buf.st_blocks * 512; - } - - ht.put(entry->d_ino, true); - - } - } while ((entry = readdir(dir))); - closedir(dir); -} - -int main (int argc, char** argv) { - listdir(argv[1]); - printf("\ntotals\nfile count: %d\tdir count: %d\tlink count: %d\nspace used: %lu\n", file_cnt, dir_cnt, link_cnt, space_used); - return 0; -} +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +class Hashtable { + unordered_map htmap; +public: + void put(ino_t key, bool value) { htmap[key] = value; } + bool get(ino_t key) { return htmap[key]; } +}; + +int file_cnt = 0, link_cnt = 0, dir_cnt = 0; +unsigned long space_used = 0; +struct stat buf; +Hashtable ht; + +void listdir (const char *name) { + DIR *dir; + struct dirent *entry; + + if (!(dir = opendir(name))) return; + if (!(entry = readdir(dir))) return; + + do { + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) continue; + if (entry->d_type == DT_DIR) { + // if (ht.get(&entry->d_ino)) continue; + // ht.put(&entry->d_ino, true); + dir_cnt++; + char path[4096]; + int len = snprintf(path, sizeof(path)-1, "%s/%s", name, entry->d_name); + path[len] = 0; + printf("[d] %s/%s\n", name, entry->d_name); + listdir(path); + } + else { + if (ht.get(entry->d_ino)) continue; + + if (entry->d_type == DT_LNK) { + link_cnt++; + printf("[l] %s/%s\n", name, entry->d_name); + + char path[4096]; + int len = snprintf(path, sizeof(path) - 1, "%s/%s", name, entry->d_name); + path[len] = 0; + stat(path, &buf); + space_used += buf.st_blocks * 512; + } + else{ + file_cnt++; + printf("[f] %d %s/%s\n", (int)entry->d_ino, name, entry->d_name); + + char path[4096]; + int len = snprintf(path, sizeof(path) - 1, "%s/%s", name, entry->d_name); + path[len] = 0; + stat(path, &buf); + space_used += buf.st_blocks * 512; + } + + ht.put(entry->d_ino, true); + + } + } while ((entry = readdir(dir))); + closedir(dir); +} + +int main (int argc, char** argv) { + listdir(argv[1]); + printf("\ntotals\nfile count: %d\tdir count: %d\tlink count: %d\nspace used: %lu\n", file_cnt, dir_cnt, link_cnt, space_used); + return 0; +} diff --git a/dircount_v2.cc b/dircount_v2.cc index 81e7a84..2c38fa2 100755 --- a/dircount_v2.cc +++ b/dircount_v2.cc @@ -1,82 +1,82 @@ -#include -#include -#include -#include -#include -using namespace std; - -class Hashtable { - unordered_map ht; -public: - void put(ino_t key, bool value) { ht[key] = value; } - bool get(ino_t key) { return ht[key]; } -}; - -int dircnt = 0, filecnt = 0, lnkcnt = 0; -unsigned long space_used; -struct stat buf; -Hashtable ht; - -bool listFileAndType(const string &dir) { - DIR *dirp = opendir(dir.c_str()); - - if (dirp) { - struct dirent *dp = 0; - - while ((dp = readdir(dirp)) != 0 ) { - string file( dp->d_name ); - - if (file == "." || file == "..") continue; - - if (dp->d_type == DT_DIR) { - string dirPath = dir + "/" + file; - cout << "[d] " << dirPath << endl; - dircnt++; - // recurse into directory - listFileAndType( dirPath ); - } - else { - if (ht.get(dp->d_ino)) continue; - switch(dp->d_type) { - case DT_REG: - filecnt++; - cout << "[f] "; - break; - case DT_LNK: - lnkcnt++; - cout << "[l] "; - break; - default: - cout << "[none] "; - break; - } - string statpath = dir + "/" + file; - ht.put(dp->d_ino, true); - stat(statpath.c_str(), &buf); - space_used += buf.st_blocks * 512; - - cout << statpath << endl; - } - } - - closedir( dirp ); - - return true; - } - else { - return false; - } -} - - -int main( int argc, char **argv ) { - const string dir = (argc > 1 ? argv[1] : "foo"); - - if (!listFileAndType(dir)) { - cout << "Error: Cannot open directory '" << dir << "'" << endl; - } - cout << endl << "totals" << endl; - cout << "file count: " << filecnt << "\tdir cnt: " << dircnt << "\tlink cnt: " << lnkcnt << endl; - cout << "space used: " << space_used << endl; - return 0; -} +#include +#include +#include +#include +#include +using namespace std; + +class Hashtable { + unordered_map ht; +public: + void put(ino_t key, bool value) { ht[key] = value; } + bool get(ino_t key) { return ht[key]; } +}; + +int dircnt = 0, filecnt = 0, lnkcnt = 0; +unsigned long space_used; +struct stat buf; +Hashtable ht; + +bool listFileAndType(const string &dir) { + DIR *dirp = opendir(dir.c_str()); + + if (dirp) { + struct dirent *dp = 0; + + while ((dp = readdir(dirp)) != 0 ) { + string file( dp->d_name ); + + if (file == "." || file == "..") continue; + + if (dp->d_type == DT_DIR) { + string dirPath = dir + "/" + file; + cout << "[d] " << dirPath << endl; + dircnt++; + // recurse into directory + listFileAndType( dirPath ); + } + else { + if (ht.get(dp->d_ino)) continue; + switch(dp->d_type) { + case DT_REG: + filecnt++; + cout << "[f] "; + break; + case DT_LNK: + lnkcnt++; + cout << "[l] "; + break; + default: + cout << "[none] "; + break; + } + string statpath = dir + "/" + file; + ht.put(dp->d_ino, true); + stat(statpath.c_str(), &buf); + space_used += buf.st_blocks * 512; + + cout << statpath << endl; + } + } + + closedir( dirp ); + + return true; + } + else { + return false; + } +} + + +int main( int argc, char **argv ) { + const string dir = (argc > 1 ? argv[1] : "foo"); + + if (!listFileAndType(dir)) { + cout << "Error: Cannot open directory '" << dir << "'" << endl; + } + cout << endl << "totals" << endl; + cout << "file count: " << filecnt << "\tdir cnt: " << dircnt << "\tlink cnt: " << lnkcnt << endl; + cout << "space used: " << space_used << endl; + return 0; +}