linux pwd指令C语言实现——20175303
要求
1 学习pwd命令
2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
3 实现mypwd
4 测试mypwd
学习pwd命令
打开终端,输入"man -k pwd",搜索与PWD有关的内容,显示PWD是打印目录的
打印目录
输入"man 1 pwd",学习PWD,参数有L/P两个
-L:如果 PWD 环境变量包含了不包含文件名 .(点)或 ..(点点)的当前目录的绝对路径名,则显示 PWD 环境变量的值。否则,-L 标志与 -P 标志一样运行。
-P:显示当前目录的绝对路径名。与 -P 标志一起显示的绝对路径不包含在路径名的绝对路径中涉及到符号链接类型的文件的名称。
退出状态:该命令返回以下出口值:0 成功完成;>0 发生错误。
2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
输入"man -k pwd"找到的结果表明没有系统调用,将pwd的内容目录dir、grep 2系统调用输入查找
描述相似的有getcwd,与pwd描述只差一个词print
学习getcwd
伪代码:
用getcwd函数获得当前目录;
然后打印出来;
3 实现mypwd
代码
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
main(void)
{
char buf[1024];
char *cwd =getcwd(buf, sizeof(buf));
if (cwd == NULL) {
perror("Get directory fail.
");
exit(-1);
}
else {
printf("%s
", cwd);
}
}
4 测试mypwd
实现截图