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








思路
问题
1.如何获取当前目录的节点号
Linux stat函数讲解(获取文件详细信息)
根据以上博客,我改了个小程序,结果如下

2.如何打开当前目录
opendir(".");
3.如何读取当前目录
readdir();
2.如何改变当前工作目录
chdir();
3.如何判定已进入根目录
inode == father_inode
4.如何存储路径并能利于直观调试
我设置了一个二维数组path[][],每一组存当前目录的名字
path[h][],在不同地方输出h就知道走到哪一层,最后一个存了几个路径。
顺序
递归:
{
- 获取当前目录和父目录的inode节点号
- 把当前的工作目录变成父目录
- 获取子目录的名字
- 如果1.的两个节点号相等则进入了根目录,退出输出。
- 递归
}
截图

代码
参考资料:
- Linux stat函数讲解(获取文件详细信息)
- opendir
- opendir 、readdir 小结
- C语言chdir()函数:改变当前的工作目录
- Linux getcwd()的实现
- linux是如何找到通过文件名称找到inode
- linux C 遍历目录及其子目录 opendir -> readdir -> closedir
20155325 加分作业 实现pwd的更多相关文章
- 2017-2018-1 20155336 《信息安全系统设计基础》加分作业:实现mypwd
2017-2018-1 20155336 <信息安全系统设计基础>加分作业:实现mypwd 什么是PWD? 用man pwd查看: 用于打印当前工作目录的工作路径 1.命令格式:pwd[选 ...
- 【现代程序设计】加分作业1-对Stack的理解
要求:本次加分作业是要阅读这篇文章“ Stack的三种含义”,以及文章下方的评论,然后做出总结. ----------------------------------------华丽的分割线----- ...
- 2017-2018-1 20155315 《信息安全系统设计基础》加分作业:实现mypwd
学习pwd命令 man pwd查看 pwd命令用于显示当前工作目录,是Linux下最常用的命令之一.在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. 环境变量OLDPWD表示 ...
- 找bug——加分作业
bug1:while循环中的*des++ =*src++; 不能这么写吧... bug2:maxSize没有定义 暂时看到这么多
- 2018-2019-1 1723《程序设计与数据结构》第5&6&7周作业 总结
作业地址 第五周作业: 提交情况如图: 第六周作业: 提交情况如图: 第七周作业: 提交情况如图: 作业问题 很多看上写的比较详细并且语言组织的也不错,我就这么随手一百度,搜出来了很多篇博客.(无奈) ...
- Java第1次实验提纲(基本概念与引入PTA+Git)
0. 控制台下编译.运行 在Notepad++编写Java程序 学会使用控制台,javac.java 学会使用Notepad++ 参考资料: 控制台-cmd应用基础 扫盲教程 使用命令行编译并运行ja ...
- 2018-2019-1 20165234 实现mypwd
实现mypwd(选做,加分) 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 提交过程博客的链接
- Java第01次实验提纲(基本概念+编程环境入门+PTA)
0. 控制台下编译.运行 在Notepad++编写Java程序 学会使用控制台,javac.java 学会使用Notepad++ 参考资料: 控制台-cmd应用基础 扫盲教程 使用命令行编译并运行ja ...
- 20155303 2016-2017-2 《Java程序设计》课程总结
20155303 2016-2017-2 <Java程序设计>课程总结 目录 一.每周作业及实验报告链接汇总 二.关于博客 自认为写得最好一篇博客是?为什么? 作业中阅读量最高的一篇博客是 ...
随机推荐
- Mysql不带条件更新报错
执行命令SET SQL_SAFE_UPDATES = 0;修改下数据库模式即可: 恢复安全模式:SET SQL_SAFE_UPDATES = 1;
- HTML的CoreText流畅度超过WebView。CoreText第三方框架DTCoreText的介绍
为什么要用CoreText(富文本)来取代WebView去显示内容.主要的原因就WebView有很大的问题,性能,FPS,卡顿,与原生不搭.这些都是大问题. WebView的缺点 1.直接使用WebV ...
- BZOJ1079:[SCOI2008]着色方案(DP)
Description 有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块. 所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个 ...
- Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier
php 连接 sqlserver 时, 程序生成的sql语句, 如果在 sqlserver客户端执行时, 可以正确返回结果, 在程序中执行, 总返回 false, 打开调试也没有任何错误. 无意中发现 ...
- 20145216史婧瑶《Java程序设计》第五次实验报告
20145216 实验五<Java网络编程> 实验内容 1.掌握Socket程序的编写 2.掌握密码技术的使用 3.设计安全传输系统 实验要求 1.基于Java Socket实现安全传输 ...
- 关于python接口基础到进阶随笔
想了很久,闲来无事,今天想了下还是总结了下写下来,部分参考官方源码理解,还有就是这么久的理解, 如果觉得有帮助请记得点赞 先讲下接口url组成拿后台服务为例 通常一个后台请求url格式: http:/ ...
- Java性能监控
Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...
- DataFrame查找
一 通过索引取数据 (ix/loc/iloc) loc (根据索引名称取数据 , 适合多列) iloc (根据索引序号取数据, 适合多列) at (和loc类似,只用于取单列, 性能更好) ia ...
- 我的QT5学习之路(三)——模板库、工具类和控件(下)
一.前言 作为第三篇的最后一部分,我们来看一下Qt的控件,谈到控件,就会让人想到界面的美观性和易操作性,进而想到开发的便捷性.作为windows界面开发的MFC曾经是盛行了多少年,但是其弊端也随着其他 ...
- Python的迭代器与装饰器
'''迭代器:两个基本方法:iter()和next()迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合等第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不会后退. 迭代器有两个基本 ...