Linux之管理目录

Linux之管理目录

一、目录以及基础知识

在 linux 中,文件目录包含文件名列表,每一个文件名对应一个 inode 编号。
目录中还能包含其它子目录,在 linux 中所有的目录和文件都是以树形结构组织的。
既然是树形结构,那么肯定就有一个根,在 linux 下有一个根 root 目录,使用命令“cd /”就可以进入 root 目录。
注意:root 目录指的是根目录。另外有一个 root 用户的概念,一个是目录中的概念,一个是 linux用户中的概念,不要混淆。
在接下来的小节中会学习到当前工作目录,创建目录,删除目录,读取目录内容等。

二、getcwd 函数

1、使用 man 学习 getcwd 函数

如下图所示,使用命令“man 3 getcwd”。有三个类似的函数 getcwd,getwd,get_current_dir_name。
在这里插入图片描述
接着介绍一下 getcwd 和 get_current_dir_name 的用法。
注意:getwd函数已经过时,使用的时候会有警告。

char *getcwd(char *buf, size_t size);
//参数*buf:保存当前目录的缓冲区。
//参数 size:在现代 linux 中,buf 的长度至少可以为 255 字节。
//返回值:成功返回指向当前目录的指针,和 buf 的值一样,错误返回 NULL。
char *get_current_dir_name(void);
//参数:无
//返回值:成功返回指向当前目录的指针,错误返回 NULL。

关于get_current_dir_name函数,给大家再介绍一点额外的知识。
打开头文件“/usr/include/unistd.h”,找到函数定义。如下图所示。
在这里插入图片描述
如上图所示,必须定义“__USE_GNU”才能使用get_current_dir_name 函数。另外经过测试发现,getwd 函数,无论定义不定义条件,都会警告这个函数已经过时,虽然可以使用。

2、函数例程

编写简单的 getcwd.c 文件测试 getcwd 函数。

#include <stdio.h>
/*getcwd、getwd和get_current_dir_name
函数的头文件*/
#define __USE_GNU
#include <unistd.h>

#define LENTH 255
int main()
{
   
	char pwd[LENTH];
	char *wd;
//getcwd函数测试		
	if(!getcwd(pwd,LENTH)){
   
		perror("getcwd");
		return 1;
	}
	printf("\ngetcwd pwd is %s\n",pwd);
	
//getwd函数测试
	wd = getwd(pwd);
	if(!wd){
   
		perror("getcwd");
		return 1;
	}
	printf("\ngetwd pwd is %s\n",wd);
	
//get_current_dir_name函数测试	
	wd = get_current_dir_name();
	if(!wd){
   
		perror("getcwd");
		return 1;
	}
	printf("\nget_current pwd is %s\n",wd);
	
	return 0;
}

3、运行结果

在这里插入图片描述
如上图所示,由于作者运行程序的当前目录是 linux 的“/”,所示显示是“/”。大家可以在其它目录下运行,看一下效果。

三、mkdir 函数

1、 使用 man 学习 mkdir 函数

如下图所示,使用命令“man 2 mkdir”,并回车。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值