6/recent/ticker-posts

Write a C program to get the name, the start block, and length of n files and display the File Allocation table using Contiguous / Sequential Allocation.

Write a C program to get the name, the start block, and length of n files and display the File Allocation table using Contiguous / Sequential Allocation.

 
Note: 
Assume that the disk space from 1 to 1000 is available for file allocation.
 
Input format:
Input consists of a number of files ( int ), Filename (string ), the start of the block ( int ) and length ( int ) of n files.
 
Output format :
The output consists of the file allocation table using contiguous file allocation technique.
Use 
printf("%s%40s%40s","File Name","Start Block","Length\n"); to print the table header in the specified format
Use "%s%50d%50d\n" to dipslay the details in the specified format.
[ Refer Sample Input and Output for further specifications ]
 
Sample Input and Output :
[All text in bold corresponds to the input and the rest corresponds to output]
 
 
Enter the number of files to be allocated
3
Enter the name of the file 1
F1
Enter the start block of the file 1
2
Enter the length of the file 1
8
Enter the name of the file 2
F2
Enter the start block of the file 2
5
Enter the length of the file 2
18
F2 cannot be allocated disk space
Enter the name of the file 3
F3
Enter the start block of the file 3
1
Enter the length of the file 3
1
File Allocation Table
File Name                             Start Block                                 Length
F1                                                 2                                                 8
F3                                                 1                                                 1


Answer:


#include<stdio.h>
int main()
{
    char name[10][30];
    int start[10],length[10],num;
    printf("Enter the number of files to be allocated\n");
    scanf("%d",&num);
    int count=0,k,j;
    for(int i=0;i<num;i++)
    {
        printf("Enter the name of the file %d\n",i+1);
        scanf("%s",&name[i][0]);
        printf("Enter the start block of the file %d\n",i+1);
        scanf("%d",&start[i]);
        printf("Enter the length of the file %d\n",i+1);
        scanf("%d",&length[i]);
        
        for(j=0,k=1;j<num && k<num;j++,k++)
        {
            if(start[j+1]<=start[j] || start[j+1]>=length[j])
            {
                
            }
            else
            {
                count++;
            }
        }
        if(count==1)
        {
            printf("%s cannot be allocated disk space\n",name[i]);
        }
    }
    printf("File Allocation Table\n");
    printf("%s%40s%40s\n","File Name","Start Block","Length");
    printf("%s%50d%50d\n",name[0],start[0],length[0]);
    
    for(int i=0,j=1;i<num && j<num;i++,j++)
    {
        if(start[i+1]<=start[i] || start[i+1]>=length[i])
            {
                printf("%s%50d%50d\n",name[j],start[j],length[j]);
            }
    }
    return 0;
}

Post a Comment

0 Comments