2017-2018-1 20155338 加分项目——PWD的实现
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的实现相关推荐
- 余姚中考能用计算机吗,2018年余姚中考政策有大变化,2020年取消奖励加分项目...
原标题:2018年余姚中考政策有大变化,2020年取消奖励加分项目 今天(26日)上午,宁波市教育局召开了中考中招政策新闻通气会,通报了2018年中考政策具体的调整情况.与往年相比,今年的政策变化不少 ...
- 2018年Python开源项目Top100!只在这里!
整理 | Jane 出品 | Python大本营 2018 年的最后一天,营长为大家新鲜出炉了一份 2018 年 Python 开源项目 Top100 清单!这些项目都是营长每月通过收集 Mybrid ...
- 2018 年度 GtiHub 开源项目 TOP 25:数据科学 机器学习
2018 年度 GtiHub 开源项目 TOP 25:数据科学 & 机器学习 雷锋网 AI 科技评论按:本文作者 Pranav Dar 是 Analytics Vidhya 的编辑,对数据科学 ...
- 2017 开源中国新增开源项目排行榜 TOP 100
2017 年开源中国社区新增开源项目排行榜 TOP 100 新鲜出炉! 这份榜单根据 2017 年开源中国社区新收录的开源项目的关注度和活跃度整理而来,这份最受关注的 100 款开源项目榜单在一定程度 ...
- adobe CC 2015/2017/2018安装失败
Adobe Effect 2015/2017/2018全系统软件已经可以从官网下载了,相信又将有一大波设计师会更新安装adobe CC 2015/2017软件.本着尝鲜的精神,本人也下载了Illust ...
- python在哪些省份加入高考加分项目_2019高考报名各省份政策最新 哪些考生可获得高考加分...
随迁子女的高考在何处进行,也一直是人们关注的话题.多省份也在2019年高考政策中给出回答.对2019年高考招生报名的资格审查,各地也纷纷细化程序,并要求对信息作假."高考移民"等违 ...
- 前端每日实战 2018 年 9 月份项目汇总(共 26 个项目)
过往项目 2018 年 8 月份项目汇总(共 29 个项目) 2018 年 7 月份项目汇总(共 29 个项目) 2018 年 6 月份项目汇总(共 27 个项目) 2018 年 5 月份项目汇总(共 ...
- 游戏安全报告(2017 - 2018全年)
2017年,黑客针对游戏行业的攻击,逐渐往多元化.精准化.智能化的方向演进. 阿里云安全团队通过分析游戏行业的全年安全态势,发现:虽然DDoS攻击仍为主流,但预计2年之内,业务层的CC攻击和有针对性的 ...
- 安徽大学java期末_安微大学2017~2018年度期末考试题卷
原标题:安微大学2017~2018年度期末考试题卷 备考备考备考! 六月来啦,期末考还会远吗? 别人家的形势与政策课试题又一次刷新三观 你会做这样的题吗 怎么判断自己是不是个合格的AHUer? 锵锵锵 ...
最新文章
- 关于AIX lv 4k offset问题初步了解
- 功能式Python中的探索性数据分析
- PWN-PRACTICE-BUUCTF-24
- python量化数据处理小细节2
- java string 包含http_Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)...
- MySQL性能优化(七)-- 慢查询
- toj 4607 Multiple of 17
- 日志文件设计学习(一)
- [水晶报表]水晶报表创建以及调用方法
- 小爱音箱怎么装app_小爱音箱最新版本下载 小爱音箱app介绍_2113手游
- ble原理(1)蓝牙ble协议知识
- 详解Boost电路的基本原理
- 57个你没有听过的Google产品
- linux测试上下行最大网速和实时网速
- 【NLP】文本匹配——Simple and Effective Text Matching with Richer Alignment Features阅读与总结(RE2)
- SQL语句执行顺序及建议
- eclipse Job
- 007-系统主要界面
- 修改SQL Server 2005 数据库文件名字
- 泛微OA二次开发基础培训文档