Chapter 4 - I/O scheduling

This commit is contained in:
Fabio Scotto di Santolo
2025-06-30 18:22:09 +02:00
parent 1d4fcf2472
commit 7bc220f92c
2 changed files with 126 additions and 0 deletions

39
chp4/inode.c Normal file
View File

@@ -0,0 +1,39 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
/* get_inode - returns the inode of the file associated
* with the given file descriptor, or -1 on failure.
*/
int get_inode(int fd);
int main(int argc, char *argv[]) {
if (argc < 2) {
fprintf(stderr, "usage: %s <file>\n", argv[0]);
return 1;
}
int fd = open(argv[1], O_RDONLY);
if (fd < 0) {
perror("open");
return 1;
}
int inode = get_inode(fd);
printf("%d\n", inode);
return 0;
}
int get_inode(int fd) {
struct stat buf;
int ret = fstat(fd, &buf);
if (ret < 0) {
perror("fstat");
return -1;
}
return buf.st_ino;
}