1 Star 0 Fork 0

Besti 20155338/Linux 20155338

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
mypwd.c 1.12 KB
一键复制 编辑 原始数据 按行查看 历史
Besti 20155338 提交于 2017-11-19 20:04 . mypwd
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <unistd.h>
#include<string.h>
ino_t get_inode(char* file);
void get_inode_name(ino_t i_node,char *file_name,int length);
void print_direct(ino_t i_node);
void main()
{
ino_t i_node;
print_direct(get_inode("."));
printf("\n");
}
void print_direct(ino_t i_node)
{
ino_t n_inode;
char *file_name[256];
if(get_inode("..")!=get_inode(".")){
chdir("..");
get_inode_name(i_node,file_name,256);
n_inode=get_inode(".");
print_direct(n_inode);
printf("/%s",file_name);
}
}
void get_inode_name(ino_t i_node,char *file_name,int length)
{
DIR* dir_ptr;
struct dirent* direntp;
dir_ptr = opendir(".");
while((direntp = readdir(dir_ptr)) != NULL)
{
if(direntp->d_ino==i_node)
{
strncpy(file_name,direntp->d_name,length);
file_name[length-1]='\0';
closedir(dir_ptr);
}
}
}
ino_t get_inode(char* file)
{
struct stat buf;
if(stat(file,&buf)!=-1)
{
return buf.st_ino;
}
else{
printf("failed to get inode");
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Csj996/Besti.git
git@gitee.com:Csj996/Besti.git
Csj996
Besti
Linux 20155338
master

搜索帮助