From 1ef2de13a094895a573c921f374ce21a422e3d25 Mon Sep 17 00:00:00 2001 From: TriantaTV Date: Tue, 8 Nov 2022 21:22:07 -0600 Subject: [PATCH] List argument works, started on removal --- src/stuffy.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/stuffy.c b/src/stuffy.c index 4e89398..03da6e8 100644 --- a/src/stuffy.c +++ b/src/stuffy.c @@ -96,7 +96,25 @@ void AddToArchive(char* archiveName, char* fileName) void RemoveFromArchive(char* archiveName, char* fileName) { - ; + ssize_t readSize; + int archiveFile = open(archiveName, O_RDWR | O_CREAT, 0644); + if (archiveFile < 0) + { + fprintf(stderr, "%s failed to open.\n", archiveName); + exit(1); + } + if (!IsFileArchived(archiveFile, fileName)) + { + fprintf(stderr, "File not found.\n"); + exit(1); + } + HeaderStruct moduleHeader; + readSize = read(archiveFile, &moduleHeader, sizeof(moduleHeader)); + while (readSize > 0) + { + ; + } + return; } void ListArchive(char* archiveName) @@ -110,11 +128,16 @@ void ListArchive(char* archiveName) exit(1); } HeaderStruct moduleHeader; + readSize = read(archiveFile, &moduleHeader, sizeof(moduleHeader)); while (readSize > 0) { moduleSize = (long long) moduleHeader.moduleInfo.st_size; + printf("Name: %s | Size: %lld\n", moduleHeader.moduleName, moduleSize); char moduleData[moduleSize]; + read(archiveFile, &moduleData, moduleSize); + readSize = read(archiveFile, &moduleHeader, sizeof(moduleHeader)); } + return; } void ExtractArchive(char* argv[])