2017-2018-1 20155226 《信息安全系统设计基础》课下实践——实现mypwd

2017-2018-1 20155226 《信息安全系统设计基础》课下实践——实现mypwd

1 学习pwd命令

  • 输入pwd命令

发现他是给出当前文件夹的绝对路径。

  • 于是 man 1 pwd查看pwd详细

  • 然后查看pwd实现需要的系统调用man -k; grep

  • 在这发现了一个功能相同的内核函数getcwd

  • 到这步就很简单了,先查看这个函数man getcwd

2 写出伪代码

 char一个数组;
    调用内核函数【getcwd()】获取当前目录的绝对路径并保存至数组中;
    if(返回的指针==NULL)
        调用函数中存在错误,输出error;
    else
        直接打印结果
    

3 实现mypwd

  • 代码如下

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    int main()
    {
    char buf[1024], *mypwd =getcwd(buf, sizeof(buf));
    if (mypwd == NULL)
    {
        printf("error!\n");
        exit(1);
    }
    else
        printf("%s\n", mypwd);
    return 0;
    }
  • 运行结果截图

时间: 2024-11-09 03:17:11

2017-2018-1 20155226 《信息安全系统设计基础》课下实践——实现mypwd的相关文章

课下实践——实现Mypwd

实现Mypwd 学习pwd命令 想要知道当前所处的目录,可以用pwd命令,该命令显示整个路径名. L 目录连接链接时,输出连接路径 P 输出物理路径 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 内核为每个目录都设置了一个指向自己的i节点入口,即".",还有一个指向其父目录i节点的入口,即"..",我们首先获取当前目录的i节点编号,但是并不能知道当前目录的名称,我们切换到其的父目录,在里面寻找当前i节点编号对应的文件名即可.这样我们就很容易联

2017-2018-1 20155226 《信息安全系统设计基础》课程总结

2017-2018-1 20155226 <信息安全系统设计基础>课程总结 每周作业链接汇总 第一周作业:http://www.cnblogs.com/20155226thy/p/7586978.html 简要内容 熟悉了Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 第三周作业:http://www.cnblogs.com/20155226thy/p/7670318.html 简要内容:信息的表示和处理 第五周作业:http://www.cnblogs.com/2

2017-2018-1 20155318 《信息安全系统设计基础》第十周课上测试及课下作业

2017-2018-1 20155318 <信息安全系统设计基础>第十周课上测试及课下作业 课上测试 解析:填充消除了冲突不命中,对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中.因而命中率为75%. 解析:高速缓存容量为2048,高速缓存结构为(( 32 ),8,8,32) 解析:不同层之间是以块为大小传输单元在层与层之间复制,空缓存的不命中叫强制性不命中或冷不命中 解析:存储器层次结构的每一层都缓存来自较低一层的数据.缓存存储器是分块的,数据总是以块为基本单位在每一层之间传递,

2017-2018-1 20155330 《信息安全系统设计基础》课堂测试&amp;课下作业

2017-2018-1 20155330 <信息安全系统设计基础>课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep -r的使用 伪代码 产品代码 mystate.c,提交码云链接 测试代码,mystat 与stat(1)对比,提交截图 STAT(1)学习 使用man 1 stat命令查看 使用man -k stat | grep 2查找相关函数 man 2 stat查看stat函数 产品

2017-2018-1 20155226 《信息安全系统设计基础》第11周学习总结

2017-2018-1 20155226 <信息安全系统设计基础>第11周学习总结 教材学习内容总结 学习目标 理解虚拟存储器的概念和作用 理解地址翻译的概念 理解存储器映射 掌握动态存储器分配的方法 理解垃圾收集的概念 了解C语言中与存储器有关的错误 教材内容提炼 第2章 信息的表示和处理 一.概述 虚拟存储器的三个重要能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存 它为每个进程提供了

2017-2018-1 20155214 《信息安全系统设计基础》 第9周课下测试-mypwd

2017-2018-1 20155214 <信息安全系统设计基础> 第9周课下测试-mypwd(深入版) 题目要求: 1 学习pwd命令 2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 3 实现mypwd 4 测试mypwd 在第9周学习总结中,我直接调用了系统调用getcwd()输出当前绝对路径.这次我尝试用c语言实现它的功能. 函数原型 #include <unistd.h> char *getcwd(char *buf, size_t size);

2017-2018-1 20155226《信息安全系统设计基础》第14周学习总结

2017-2018-1 20155226<信息安全系统设计基础>第14周学习总结 教材学习内容深度学习 第二章 信息的表示和处理 十六进制表示法C表示法以0x或0X开头的数字常量为十六进制进制转换常用进制:二进制(B),十进制(D),八进制(O或者Q),十六进制(H) 转换为二进制-十六进制相互转换,二进制的四位数字对应十六进制的一位数字. 同理,二进制与八进制的转化是三位对应一位. 但是通常情况下,进制转换都以二进制为桥梁进行转换. 每台计算机都有一个字长,指明整数和指针数据的标称大小,因为

2017-2018-1 《信息安全系统设计基础》 20155322 十六周课上实践

2017-2018-1 <信息安全系统设计基础> 20155322 十六周 课上实践 题目 原理 实现 小时设置及提取 #define TIME_Addr 0xFFFFC0000 //实时钟芯片的IO映像基址是OxFFFFC0000 #define TIME *(volatile int *) (TIME_Addr+2) //时间存放在基址+2的寄存器中 void SetHours(int hours) { int oldtime = TIME; int newtime = oldtime &

2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试

2018-2019-1 20165318<信息安全系统设计基础>第八周课上测试 测试-1-ch03 任务详情 通过输入gcc -S -o main.s main.c,将下面c程序"week04学号.c"编译成汇编代码 int g(int x) { return x+3; } int f(int x) { int i = 学号后两位: return g(x)+i; } int main(void) { return f(8)+1; } 删除汇编代码中 . 开头的代码,提交f函