getcwd()获取当前目录

1、inux命令中可以使用pwd查看当前目录,系统编程中可以通过getcwd获取当前目录。

2、man 3 getcwd

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

4、char *getwd(char *buf);该函数已经过时,使用的时候会有警告
     –参数*buf:保存当前目录的缓冲区
     –返回值:成功返回指向当前目录的指针,和buf 的值一样,错误返回NULL

5、char *get_current_dir_name(void);
    –参数:无
    –返回值:成功返回指向当前目录的指针,错误返回NULL


例:

#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;
}


### Python 中获取当前工作目录的方法 在 Python 中,可以使用 `os` 模块中的方法 `os.getcwd()` 来获取当前的工作目录。此函数会返回一个字符串形式的路径,表示程序运行时的操作系统当前工作目录。 以下是具体的实现方式及其解释: ```python import os current_working_directory = os.getcwd() print(f"当前工作目录: {current_working_directory}") ``` 上述代码通过调用 `os.getcwd()` 函数获取并打印当前工作目录[^2]。该函数不接受任何参数,并始终返回操作系统定义下的当前工作目录路径。 需要注意的是,如果脚本是从不同的位置启动,则当前工作目录可能与脚本的实际存储位置不同。为了区分这一点,还可以结合其他方法如 `os.path.dirname(os.path.abspath('__file__'))` 使用,后者能够提供脚本文件的真实存储路径[^1]。 #### 示例对比 `os.getcwd()` 和 `os.path.dirname(os.path.abspath('__file__'))` 下面是一个完整的例子展示两者的差异: ```python import os # 当前工作目录 current_working_directory = os.getcwd() print(f"当前工作目录 (os.getcwd()): {current_working_directory}") # 脚本所在目录 script_directory = os.path.dirname(os.path.abspath('__file__')) print(f"脚本所在目录 (os.path.dirname): {script_directory}") ``` 当执行以上代码片段时,假设脚本位于 `/home/user/project/script.py` 并且命令是在 `/tmp` 文件夹下发起的,那么输出可能是这样的: ``` 当前工作目录 (os.getcwd()): /tmp 脚本所在目录 (os.path.dirname): /home/user/project ``` 这表明即使脚本被放置在一个特定的位置上,但如果从另一个地方触发它的运行环境,两者的结果可能会有所不同。 #### 总结 - **`os.getcwd()`**: 提供当前进程所处的工作目录。 - **`os.path.dirname(os.path.abspath('__file__'))`**: 给出实际存放脚本的具体物理地址。 因此,在开发过程中需注意这两者之间的区别以便于更精确地控制项目结构和资源定位逻辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值