3

ユーザーからiノード番号を取得しているので、ファイルシステムでそのファイルを検索する必要があります。iノード番号を検索するにはどうすればよいですか。私はCとUNIXを使用してこれを行う必要があります。

これまでの私のコードは次のとおりです。

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

int main(){

    int inodeNumber;
    printf("Please enter the inode you wish to view:\n");
    scanf("%d",&inodeNumber);

    struct stat fileStat;
    int temp_file;
    temp_file = system("find/fs/root -inum inodeNumber");
    fstat(temp_file, &fileStat);
    //printf("Information for %s\n",argv[1]);
    printf("---------------------------\n");
    printf("File Size: \t\t%d bytes\n",(int)fileStat.st_size);
    printf("Number of Links: \t%d\n",(int)fileStat.st_nlink);
    printf("File inode: \t\t%d\n",(int)fileStat.st_ino);
}  

ありがとう

4

1 に答える 1

2

ファイルシステムのディレクトリを再帰的にトラバースし、各ファイルに対してstat(またはおそらく)実行し、のメンバーを検索しているiノード番号とlstat比較します。st_inostruct stat

Cで行う必要がない場合は、find /fs/root -inum N代わりに推奨します。

于 2013-02-11T23:09:52.773 に答える