20165202 Mypwd
实现mypwd(选做,加分)
- 1 学习pwd命令
- 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
- 3 实现mypwd
- 4 测试mypwd
提交过程博客的链接
实现过程
- 使用man -k pwd查看pwd在man手册中的说明。手册里的介绍是:
pwd (1) - print name of current/working directory
pwd命令的作用是p(rint name of )w(orking) d(irectory),打印正在工作或者最近的文件夹名。具体的使用方法是直接在终端中输入pwd,然后在下方会打印出正在工作或者最近的文件名。
运行man -k pwd:

运行pwd:

- 使用man pwd查看pwd命令的具体说明发现pwd命令是属于1类命令,即应用命令不是之前的2类系统调用。如果要打印文件信息,采用c语言核心命令是stat()函数,文件的相关信息会记录在文件系统里,stat()函数的作用就是读取文件系统里的信息。
运行man pwd:

代码核心函数:
main函数:主函数
get_inode函数:取某个文件的索引信息(进入点)
printpathto函数:打印路径
inum_to_name函数:将长整型的索引信息转化为字符串的形式
通过以上的分析对pwd进行编写,其中参考了pwd的源代码。
我们在home主文件夹中创建了一个pwd文件夹,在里面放置了pwd.c的代码并进行了编译运行,显示的运行文件路径是
/home/linux/pwd,然后再使用使用Linux中的pwd查看当前运行文件路径也是/home/linux/pwd。
运行截图:

学习中遇到的问题
问题1:
Linux中如何获得文件信息?目前文件夹的信息的存在哪里?
解决1:
通过网上的资料得到了stat可以读取系统文件的信息,于是使用man -k stat查看stat的详细资料。这里存在应用和系统调用两个使用方法,可以在pwd中使用stat的系统调用来获得系统文件的信息,并打印出来。

参考资料
20165202 Mypwd的更多相关文章
- 2017-2018-1 20155205 实现mypwd
2017-2018-1 20155205 实现mypwd 课堂总结 根据上课对ls -l功能的实现,我总结了实现一个linux命令需要的步骤: 使用man -k xx | grep xx查看帮助文档, ...
- 20155227 实现mypwd
20155227 实现mypwd 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 课堂学习笔记 实现mypwd 在 ...
- 2017-2018-1 20155306 mypwd的实现
2017-2018-1 20155306 mypwd的实现 一.pwd的使用 功能: Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 命令格式:pwd [选项] 命 ...
- 实现mypwd
1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 提交过程博客的链接 代码如图
- 2018-2019-1 20165231 实现mypwd(选做)
实现mypwd 要求: 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd pwd: 在Linux层次结构中,想要知道当前所处的目录, ...
- 20165223 《信息安全系统设计基础》 实现mypwd
一.学习pwd命令 1. pwd命令简介 英文原名:Print Working Directory 指令功能:打印出当前工作目录 执行权限:All User 指令所在路径:/usr/bin/pwd 或 ...
- 2018-2019-1 20165234 实现mypwd
实现mypwd(选做,加分) 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 提交过程博客的链接
- 实现mypwd和mybash
一.pwd 1.学习pwd命令 man pwd查看pwd功能 可以得知pwd功能是打印当前目录 2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码 (1)man -k direc ...
- 20155228 2017-11-19 实现mypwd(选做,加分)
20155228 2017-11-19 实现mypwd(选做,加分) 题目和要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd ...
随机推荐
- Sql 最简单的Sqlserver连接
string name = txtUserName.Text.Trim();//移除用户名前部和后部的空格 string pwd = txtUserPwd.Text.Trim();//移除密码前部和后 ...
- mysql删除sql表添加别名及删除sql的注意事项
本文为博主原创,未经允许不得转载: 根据平常的习惯,个人会将操作的表后面添加一个别名,无论是使用还是不使用的时候,均是为了 修改还是扩展sql的时候更加安全,方便,快捷. 今天在写删除的sql时,对表 ...
- substring()的用法和注意事项
作者原创:转载请注明出处 substring()方法的作用为截取字符串,其有两种用法: 分别如下: substring(int beginIndex);这个的作用为截取从beginindex位置处的元 ...
- python工具
目录 Python工具 1. argparse 2. tqdm 3. os, shutil 4. csv Python工具 1. argparse import argparse parser = a ...
- 处理div 在IE6 IE7 IE8 不居中的问题
具体处理方式如下:1 .html 顶部加入:DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- UVa 1601 万圣节后的早晨
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Jenkins 构建 coding项目,插件
安装插件:http://updates.jenkins-ci.org/download/plugins/coding-webhook/
- Xcode集成POD教程
http://www.cocoachina.com/ios/20150410/11526.html COCOAPODS的网站上有很多非常好用的资源,这里来说一下如何把POD集成到我们的Xcode项目中 ...
- [原][译][osg][osgEarth]飞行模拟软件JSBSim的操作(FGFCS类)
英文原文在 FGFCS.h头文件中 JSBSim的控制操作封装了飞行控制系统(FCS)的功能. 这个FGFCS类还封装了相同的“系统”和“自动驾驶仪”能力. FGFCS包含用来定义一个系统或飞行模型体 ...
- js 中的几个假值
1. 使用场景 if分支语句 / 短路语句while循环语句for里的第二个语句 2. 6个假值 (都属于 原始类型数据的一部分内容,非原始类型即对象都是真值,如:对象.数组.正则.函数 . ...