Question
I have the following code, but the code is not outputting what i wanted it to output. I need mainly focus on computeOverheadBlocks. the result
I have the following code, but the code is not outputting what i wanted it to output. I need mainly focus on computeOverheadBlocks. the result that the code should output will look like this. Mainly goal is to have the same expected and got value.
Mismatch for 0 : Expected 0, got 1 Mismatch for 1 : Expected 0, got 1 Mismatch for 10 : Expected 0, got 1 Mismatch for 100 : Expected 1, got 2 Mismatch for 1000 : Expected 1, got 2 Mismatch for 10000 : Expected 1, got 2 Mismatch for 15000 : Expected 1, got 2 Mismatch for 16000 : Expected 1, got 2 Mismatch for 16400 : Expected 1, got 3 Mismatch for 16480 : Expected 1, got 3 Mismatch for 16500 : Expected 3, got 4 Mismatch for 17000 : Expected 3, got 4 Mismatch for 20000 : Expected 3, got 4 Mismatch for 30000 : Expected 3, got 4 Mismatch for 40000 : Expected 4, got 6 Mismatch for 100000 : Expected 8, got 14 Mismatch for 1000000 : Expected 63, got 125 Mismatch for 10000000 : Expected 612, got 1241 Mismatch for 30000000 : Expected 1833, got 3721 Mismatch for 33000000 : Expected 2016, got 4092 Mismatch for 33500000 : Expected 2046, got 4153 Mismatch for 33570000 : Expected 2050, got 4162 Mismatch for 33570900 : Expected 2050, got 4163 Mismatch for 33570910 : Expected 2050, got 4163 Mismatch for 33570912 : Expected 2050, got 4163 Mismatch for 33571000 : Expected 2053, got 4164 Mismatch for 33580000 : Expected 2053, got 4164 Mismatch for 33600000 : Expected 2054, got 4166 Mismatch for 34000000 : Expected 2079, got 4216 Mismatch for 40000000 : Expected 2445, got 4960 Mismatch for 50000000 : Expected 3055, got 6199 Mismatch for 100000000 : Expected 6108, got 12398 Mismatch for 1000000000 : Expected 61067, got 123979 Mismatch for 10000000000 : Expected 610652, got 1239777 Mismatch for 20000000000 : Expected 1221302, got 2479554 Mismatch for 30000000000 : Expected 1831951, got 3719330 Mismatch for 40000000000 : Expected 2442601, got 4959107 Mismatch for 50000000000 : Expected 3053250, got 6198883 Mismatch for 60000000000 : Expected 3663900, got 7438660 Mismatch for 68000000000 : Expected 4152419, got 8430481 Mismatch for 68700000000 : Expected 4195165, got 8517266 Mismatch for 68750000000 : Expected 4198217, got -1 Mismatch for 68752000000 : Expected 4198340, got -1 Mismatch for 68753000000 : Expected 4198401, got -1 Mismatch for 68753040000 : Expected 4198403, got -1 Mismatch for 68753047000 : Expected 4198403, got -1 Mismatch for 68753047600 : Expected 4198403, got -1 Mismatch for 68753047648 : Expected 4198403, got -1
//may be the last one #include
#define SIBLOCKS 2048L #define DIBLOCKS (2048L*2048L) #define TIBLOCKS (2048L*2048L*2048L) #define BLOCK_SIZE 8L*1024L
struct ext4_inode { int size; };
long computeOverheadBlocks(long diskblocks) { long sb_size = BLOCK_SIZE; long gdt_size = (diskblocks / 8) / 256 * BLOCK_SIZE; long it_size = (diskblocks / 8) / 4 * sizeof(struct ext4_inode);
// Compute the number of indirect blocks required for the given number of disk blocks long nindirect = 0; long nblocks = diskblocks; while (nblocks > 12) { nindirect++; nblocks -= BLOCK_SIZE / sizeof(int); }
// Compute the size of the indirect block table long ibt_size = nindirect * BLOCK_SIZE;
// Compute the total number of overhead blocks required long overhead_blocks = (sb_size + gdt_size + it_size + ibt_size) / BLOCK_SIZE;
// Return the number of overhead blocks return overhead_blocks; }
int main(int argc, char *argv[]) { if (argc != 2) { printf("Usage: diskblocks
// Check if the file size is too large to fit in the file system if (diskblocks > TIBLOCKS) { printf("-1 "); return -1; }
printf("%ld %ld ", diskblocks, computeOverheadBlocks(diskblocks)); return 0; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started