c语言获取当前工作路径的实现代码语言获取当前工作路径的实现代码(windows/linux)
Linux
函数名: getcwd
功 能: 取得当前的工作目录
用 法: char *getcwd(char *buf, size_t size);
函数说明: getcwd()会将当前的工作目录绝对路径复制到参数buf所指的内存空间,参数size为buf的空间大小。在调用此函数
时,buf所指的内存空间要足够大,若工作目录绝对路径的字符串长度超过参数size大小,则回值NULL,errno的值则为
ERANGE。倘若参数buf为NULL,getcwd()会依参数size的大小自动配置内存(使用malloc()),如果参数size也为0,则
getcwd()会依工作目录绝对路径的字符串程度来决定所配置的内存大小,进程可以在使用完此字符串后利用free()来释放此空
间。
返回值: 执行成功则将结果复制到参数buf所指的内存空间,或是返回自动配置的字符串指针。失败返回NULL,错误代码存于
errno。
程序例:
#include <stdio.h>
#include <unistd.h>
main()
{
char buf[80];
getcwd(buf,sizeof(buf));
printf("current working directory: %s", buf);
}
linux C 获取当前的工作目录方法二
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main(void)
{
char buffer[1024] ;
//获取当前的工作目录,注意:长度必须大于工作目录的长度加一
char *p = getcwd(buffer , 40);
char *dir = NULL;
printf("buffer:%s p:%s size:%d " , buffer , p , strlen(buffer));
//获取当前工作目录的名字
dir = (char *)get_current_dir_name();
printf("dir:%s " , dir);
char *twd = NULL ;
twd = getwd(buffer);
printf("buffer:%s twd:%s " , buffer , twd);
return 0 ;
}
运行结果:
buffer: p:(null) size:0
dir:/mnt/sdb1/yangyx/system系统编程/文件目录接口及声卡实现
buffer:/mnt/sdb1/yangyx/system系统编程/文件目录接口及声卡实现 twd:/mnt/sdb1/yangyx/system系统编程/文件目录接口及声
卡实现
Windows下目录操作下目录操作
1.获得当前工作目录
char* _getcwd( char *buffer, int maxlen );
// 功 能 : 获得当前工作目录.
// 头文件 : #include <direct.h>
// 返回值 : 成功返回指向buffer的pointer
// 失败返回NULL,且设置errno为以下三个值之一:
// ENODEV 无该设备
评论0