Shell命令编写——显示到达当前目录的路径pwd
2011-11-29 23:34
633 查看
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> #include <string.h> /* * pwd功能:显示到达当前目录的路径 * * pwd的算法: * 得到"."的i-节点号,称其为n(使用stat) * chdir..(使用chdir) * 找到i-节点号n链接的名字(opendir,readdir,closedir) * * 重复直到到达树的顶端 * * 1.顶端的判断 * 2.按顺序显示目录名字 * */ ino_t get_inode(char *); void dir_to_name(ino_t,char[],int); int print_dir(ino_t); int main(){ print_dir(get_inode(".")); printf("\n"); return; } print_dir(ino_t this_inode){ ino_t my_inode; char its_name[50]; /*到达树的顶端的条件*/ if(this_inode!=get_inode("..")){ chdir(".."); dir_to_name(this_inode,its_name,50); my_inode = get_inode("."); print_dir(my_inode); printf("/%s",its_name); } } /* * get_inode(char *fname) * * 获取目录的i-节点号 * */ ino_t get_inode(char *fname){ struct stat info; if((stat(fname,&info))==-1){ return 0; }else{ return info.st_ino; } } /* * 输出当前目录的名称 * * */ void dir_to_name(ino_t inode,char *namebuf,int len){ DIR *dir_ptr; struct dirent *direntp; char *fname = ".."; //打开目录 if((dir_ptr = opendir(fname))==NULL){ perror("."); return; } //读取目录项 while((direntp = readdir(dir_ptr))!=NULL){ if(direntp->d_ino == inode){ strncpy(namebuf,direntp->d_name,len); namebuf[len-1]='\0'; //关闭目录 closedir(dir_ptr); return; } } }
相关文章推荐
- Linux下的 【pwd】 命令; 显示当前目录全路径。
- linux基本命令 显示当前目录(显示链接的真实路径) pwd
- pwd命令(显示出当前工作目录的绝对路径)
- pwd命令_Linux pwd 命令用法详解:绝对路径方式显示用户当前工作目录
- 每天学习一个LINUX命令:pwd 显示当前目录(Print-Working-Directory)
- Linux中用 pwd 命令来查看”当前工作目录“的完整路径。
- 使用shell脚本显示出当前路径或者去掉目录路径
- LinuxStudyNote(9)-Linux常用命令(2)-文件处理命令(4)-显示当前目录命令pwd
- Shell命令编写——显示目录信息ls
- linux基本命令-显示当前工作目录 pwd
- 我使用过的Linux命令之pwd - 显示当前工作目录
- 【Unxi/Linux】【命令】【文件,目录操作工具】查看当前工作目录完整路径 - pwd
- python shell中python os模块实用函数(含改变当前工作路径、显示当前目录等)
- 在ubuntu 终端的命令提示行 隐藏/显示 当前工作目录
- UBUNTU 终端路径只显示当前目录
- shell学习之查找当前目录下文件以及文件夹大小-'du'命令和'df'命令
- 在ubuntu terminal(终端)的命令提示行 隐藏/显示 当前工作目录
- Python Shell中切换当前工作目录(路径)
- 文件夹下shift+右键显示“在当前路径打开命令窗口”
- dirname命令介绍-使用dirname在shell脚本中获取当前脚本文件所在的绝对路径