void testFileCreationAndDeletion() { printf("testing file creation and deletion\n"); printf("creating files 'a', 'b', and 'c'\n"); fileDescriptor a, b, c; a = tfs_openFile("a"); b = tfs_openFile("b"); c = tfs_openFile("c"); REQUIRE_GT(a, -1); REQUIRE_GT(b, -1); REQUIRE_GT(c, -1); printf("listing disk contents\n"); REQUIRE_GT(tfs_listDisk(), -1); printf("deleting files 'a', 'b', and 'c'\n"); REQUIRE_GT(tfs_deleteFile(a), -1); REQUIRE_GT(tfs_deleteFile(b), -1); REQUIRE_GT(tfs_deleteFile(c), -1); printf("listing disk contents\n"); REQUIRE_GT(tfs_listDisk(), -1); }
void deleteFile(Buffer *buf, int FD) { tfs_deleteFile(FD); for (int i = 0; i < buf->nBufferBlocks; i++) { if (buf->buffer_timestamp[i] != -1 && buf->pages[i].address.FD == FD) { buf->buffer_timestamp[i] = -1; buf->pin[i] = 0; buf->numBufferOccupied--; } } for (int i = 0; i < buf->nCacheBlocks; i++) { if (buf->cache_timestamp[i] != -1 && buf->pages[i].address.FD == FD) { buf->cache_timestamp[i] = -1; buf->numCacheOccupied--; } } }