IFA
IFA
h>
#include<stdlib.h>
#include<string.h>
struct bit_vector_node
{
int allocated;
int index_table[MAX_INDEX];
struct bit_vector_node *next;
};
struct dir_entry
{
char file_name[10];
int index_block_no;
int file_size;
};
int dir_count = 0;
int free_blocks[BIT_VECTOR];
int free_block_count = 0;
int memory_size;
void initialize_bit_vector()
{
int i , j;
free_blocks[i] = i;
}
free_block_count = memory_size;
}
void show_memory_blocks()
{
int is_index_block;
int i, j;
printf("Memory Blocks:\n");
if (is_index_block)
{
printf("{0,{");
printf("}} ");
}
else
{
printf("{0,{}} ");
}
}
}
printf("\n");
}
int find_free_block()
{
int random_index , block_index;
if(free_block_count == 0)
return -1;
void create_file()
{
char filename[10];
int filesize;
int index_block_no;
int block_no;
int i;
index_block_no = find_free_block();
if(index_block_no == -1)
{
printf("No free memory !");
}
else
{
bit_vector[index_block_no] -> allocated = 0;
}
if(block_no == -1)
{
printf("No free memory !");
}
else
{
bit_vector[block_no] -> allocated = 0;
bit_vector[index_block_no] -> index_table[i] = block_no;
}
}
void delete_file()
{
char filename[10];
int index;
int filesize;
int block_no;
int i, j;
dir_count--;
printf("File deleted\n");
}
else
{
printf("File not found\n");
}
}
}
void display_directory()
{
int i;
printf("Directory : \n");
int main()
{
int choice;
initialize_bit_vector();
do
{
printf("\n1. Show Memory Blocks\n");
printf("2. Create New File\n");
printf("3. Show Directory\n");
printf("4. Delete File\n");
printf("5. Exit\n");
printf("Enter choice: ");
scanf("%d", &choice);
switch (choice)
{
case 1: show_memory_blocks(); break;
case 2: create_file(); break;
case 3: display_directory(); break;
case 4: delete_file(); break;
case 5: printf("You chose to Exit !"); break;
default: printf("Invalid Choice\n");
}
}while(choice !=5);
}