补全代码如下:

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

#include<stdio.h> #include<string.h> #include<dirent.h> #include<stdlib.h>

ino_t get_inode(char *fname){ struct stat info;

if(stat(fname, &info) == -1){
    printf("cannot stat");
    exit(1);
}

return info.st_ino;    

}

void inum_to_name(ino_t inode_to_find, char* name, int buflen) { DIR* dir_ptr; struct dirent* direntp;

dir_ptr = opendir("."); // 打开当前目录
if(dir_ptr ==NULL){
    printf("error in opendir");
    exit(1);
}

while( (direntp=readdir(dir_ptr))!=NULL){
    if(direntp->d_ino == inode_to_find){
        strncpy(name, direntp->d_name, buflen);
        name[buflen-1]='\0';
        closedir(dir_ptr);
        return;        
    }        
}
printf("error in looking for inum %ld\n", inode_to_find);
exit(1);        

}

int main(int argc, char* argv[]) { char name[30]; inum_to_name(get_inode(argv[1]), name, 30);
printf("name=%s\n", name); return 0;

请补全下列代码使其功能完整:#includesystypesh#includesysstath#includeunistdh#includestdioh#includestringh#includedirenthino_t get_inodechar fname	struct stat info;		ifstatfname &info == -1		printfcannot stat;		exit

原文地址: https://www.cveoy.top/t/topic/fbEH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录