实验内容
1.学习pwd命令
2.研究pwd实现需要的系统调用(man -k; grep),写出伪代码
3.实现mypwd
4.测试mypwd
实践过程
学习pwd命令
1.pwd命令功能
Linux中,pwd命令用于显示工作目录。
执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
2.查看参数
通过 man pwd 可以得知,可以使用 man pwd 了解pwd的相关信息
由此可知pwd参数功能:
-L:--logical,显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式),参考示例1。
-p:--physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件,参考示例2。 当包含多层连接文件时,显示连接文件最终指向的文件,参考示例3。
--help:显示帮助信息。
--version:显示版本信息。
研究pwd实现需要的系统调用(man -k; grep)
1.查看相关系统调用函数信息:man -k dir | grep 2
2.使用 man 2 chdir 查看chdir的相关信息。
可知:int chdir(const char *path )---用于改变当前工作目录,调用参数是指向目录的指针,调用进程需要有搜索整个目录的权限
3.使用 man getcwd 查看getcwd的相关信息。
找到所需要的头文件以及函数原型
#include <unistd.h>
char *getcwd(char *buf, size_t size);
图中getcwd():getcwd(char *buf,size_t size)是将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数size为buf的空间大小。
代码
1.伪代码描述
因为调用getcwd后将解决绝对路径的问题,代码也会变得十分简单,所以伪代码描述:
一个字符串数组储存绝对路径
调用函数getcwd()
if (返回的指针==NULL)
调用函数出错,发出错误报告
else
打印结果
2.代码
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char buff[256];
getcwd(buff,sizeof(buff));
printf("%s\n",buff);
return 0;
}
代码测试
用getcwd()函数应该是非常简单的一种方法了。
标签:实现,代码,getcwd,char,pwd,mypwd,man,size From: https://www.cnblogs.com/wxl2761407387/p/16815771.html