【发布时间】:2018-11-11 23:10:06
【问题描述】:
作为大学调整的一部分,我必须修改位于/usr/src/minix/fs/mfs/link.c 中的函数unlink_file,因此(在某些情况下)不是删除文件,而是更改它们的名称。
我将父目录的 inode、文件的 inode 及其名称作为参数传递给函数:
static int unlink_file(dirp, rip, file_name)
struct inode *dirp; /* parent directory of file */
struct inode *rip; /* inode of file, may be NULL too. */
char file_name[MFS_NAME_MAX]; /* name of file to be removed */
我想过使用rename(2) 系统调用(该实现位于函数fs_rename 的同一文件中),但我需要文件的绝对路径才能这样做。不幸的是,我不知道如何从 inode 结构中检索它。
我的问题是:如何通过 inode 检索文件的绝对路径?或者还有其他方法可以从 unlink_file 函数中重命名文件吗?
【问题讨论】:
标签: filesystems rename inode minix