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 ...
随机推荐
- 配置文件(Machine.config、Web.config、App.config)
Machine.config1.该文件在Windows目录下\Microsoft.net\framework\[version]\Config\2.为了提高性能,该文件只包含不同于默认值的设置.并且定 ...
- 08_Flume_Selector实践
实践一:replicating selector 1.目标场景 selector将event复制,分发给所有下游节点 2.Flume Agent配置 Agent配置 # Name the compon ...
- Codeforces Round #305 (Div. 2) D. Mike and Feet 单调栈
D. Mike and Feet time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- python 获取当前时间戳
#!/usr/bin/python # -*- coding: UTF- -*- import time; # 引入time模块 ticks = time.time() print("当前时 ...
- shell 脚本中所有循环语法
写出 shell 脚本中所有循环语法 for 循环 : for i in $(ls);do echo item:$i done while 循环 : #!/bin/bash COUNTER=0 whi ...
- cqlsh 一个错误
C:\Users\jasqia>cqlsh 10.215.70.158 1433Can't detect Python version! http://zqhxuyuan.github.io/2 ...
- Python day6_dictionary字典的常见方法1_笔记(基本类型结束)
# 字典的简述 # 1.字典不能做字典的key,列表也不能作为列表的key info={ 'k1':'v1', 'k2':'v2' } print(info) #2.通过键获取值 print(info ...
- Kali Linux 2016.2初体验
前言 Kali Linux官 方于8月30日发布Kali Linux 2016的第二个版本Kali Linux 2016.2.该版本距离Kali Linux 2016.1版本发布,已经有7个月.在这期 ...
- js焦点事件:onfocus、onblur、focus()、blur()、select()
焦点:使浏览器能够区分用户输入的对象,当一个元素有焦点的时候,那么他就可以接收用户的输入只有能够响应用户操作额元素才可以接收焦点事件,比如:a button input... onfocus:当元素获 ...
- 音视频学习系列第(五)篇---MediaRecorder的使用
音视频系列 什么是MediaRecorder MediaRecorder是安卓提供的一个用于音视频采集的类 在前几篇文章中,我们已经介绍了如何进行音频和视频的采集,即通过AudioRecord采集音频 ...