2017-2018-1 20155338 加分项目——PWD的实现

项目要求

1 学习pwd命令
2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
3 实现mypwd
4 测试mypwd

实现过程

首先通过man 命令了解了一下pwd的用法

试试pwd命令的用法:

代码实现:

需要用到readdir函数

可以用man 命令了解了一下readdir函数的用法。

代码如下:


#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");}
}

运行结果为:

转载于:https://www.cnblogs.com/Hdywan/p/7861395.html

2017-2018-1 20155338 加分项目——PWD的实现相关推荐

  1. 余姚中考能用计算机吗,2018年余姚中考政策有大变化,2020年取消奖励加分项目...

    原标题:2018年余姚中考政策有大变化,2020年取消奖励加分项目 今天(26日)上午,宁波市教育局召开了中考中招政策新闻通气会,通报了2018年中考政策具体的调整情况.与往年相比,今年的政策变化不少 ...

  2. 2018年Python开源项目Top100!只在这里!

    整理 | Jane 出品 | Python大本营 2018 年的最后一天,营长为大家新鲜出炉了一份 2018 年 Python 开源项目 Top100 清单!这些项目都是营长每月通过收集 Mybrid ...

  3. 2018 年度 GtiHub 开源项目 TOP 25:数据科学 机器学习

    2018 年度 GtiHub 开源项目 TOP 25:数据科学 & 机器学习 雷锋网 AI 科技评论按:本文作者 Pranav Dar 是 Analytics Vidhya 的编辑,对数据科学 ...

  4. 2017 开源中国新增开源项目排行榜 TOP 100

    2017 年开源中国社区新增开源项目排行榜 TOP 100 新鲜出炉! 这份榜单根据 2017 年开源中国社区新收录的开源项目的关注度和活跃度整理而来,这份最受关注的 100 款开源项目榜单在一定程度 ...

  5. adobe CC 2015/2017/2018安装失败

    Adobe Effect 2015/2017/2018全系统软件已经可以从官网下载了,相信又将有一大波设计师会更新安装adobe CC 2015/2017软件.本着尝鲜的精神,本人也下载了Illust ...

  6. python在哪些省份加入高考加分项目_2019高考报名各省份政策最新 哪些考生可获得高考加分...

    随迁子女的高考在何处进行,也一直是人们关注的话题.多省份也在2019年高考政策中给出回答.对2019年高考招生报名的资格审查,各地也纷纷细化程序,并要求对信息作假."高考移民"等违 ...

  7. 前端每日实战 2018 年 9 月份项目汇总(共 26 个项目)

    过往项目 2018 年 8 月份项目汇总(共 29 个项目) 2018 年 7 月份项目汇总(共 29 个项目) 2018 年 6 月份项目汇总(共 27 个项目) 2018 年 5 月份项目汇总(共 ...

  8. 游戏安全报告(2017 - 2018全年)

    2017年,黑客针对游戏行业的攻击,逐渐往多元化.精准化.智能化的方向演进. 阿里云安全团队通过分析游戏行业的全年安全态势,发现:虽然DDoS攻击仍为主流,但预计2年之内,业务层的CC攻击和有针对性的 ...

  9. 安徽大学java期末_安微大学2017~2018年度期末考试题卷

    原标题:安微大学2017~2018年度期末考试题卷 备考备考备考! 六月来啦,期末考还会远吗? 别人家的形势与政策课试题又一次刷新三观 你会做这样的题吗 怎么判断自己是不是个合格的AHUer? 锵锵锵 ...

最新文章

  1. 关于AIX lv 4k offset问题初步了解
  2. 功能式Python中的探索性数据分析
  3. PWN-PRACTICE-BUUCTF-24
  4. python量化数据处理小细节2
  5. java string 包含http_Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)...
  6. MySQL性能优化(七)-- 慢查询
  7. toj 4607 Multiple of 17
  8. 日志文件设计学习(一)
  9. [水晶报表]水晶报表创建以及调用方法
  10. 小爱音箱怎么装app_小爱音箱最新版本下载  小爱音箱app介绍_2113手游
  11. ble原理(1)蓝牙ble协议知识
  12. 详解Boost电路的基本原理
  13. 57个你没有听过的Google产品
  14. linux测试上下行最大网速和实时网速
  15. 【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)
  16. SQL语句执行顺序及建议
  17. eclipse Job
  18. 007-系统主要界面
  19. 修改SQL Server 2005 数据库文件名字
  20. 泛微OA二次开发基础培训文档

热门文章

  1. 百度编辑器图片上传功能解疑
  2. 学习:java原理—反射机制
  3. SESSIONS.ser 的问题
  4. 7-Flink的分布式缓存
  5. ubuntu 修改和配置ip
  6. Python爬虫学习——布隆过滤器
  7. tomcat增加处理线程数量
  8. 冒泡排序算法的 JavaScript 实现
  9. JVM证书制作步骤+耶鲁 CAS 配置
  10. 2011年中期业绩预增前20家公司