@[TOC](C++ getcwd() 获得当前工作目录的路径)
基本格式
#define _POSIX_SOURCE
#include <unistd.h>
char *getcwd(char *buffer, size_t size);
描述
获得当前工作目录(GET Current Working Directory),并将其存储到buffer中。
size buffer的空间大小。
buffer 存储路径的变量(char)。必须保证有足够的长度以保存完整路径全名。
返回值
getcwd()函数的返回值是指向 buffer 变量的 char 类型指针。如果操作失败,则会返回NULL指针,并发出以下错误信息:
- EACCES: 进程无范围当前目录或者部分文件的权限。
- EINVAL:小于等于0.
- ENOENT:工作路径的组成部分不存在。
- EIO:出现出入/输出错误
- ENOTDIR:工作目录路径名部分不是一个真正的目录。
- ERANGE:size大于0,但是小于工作目录路径长度。
例子
/* CELEBG03
This example determines the working directory.
*/
#include <unistd.h>
#include <stdio.h>
main() {
char cwd[256];
if (chdir("/tmp") != 0)
perror("chdir() error()");
else {
if (getcwd(cwd, sizeof(cwd)) == NULL)
perror("getcwd() error");
else
printf("current working directory is: %s\n", cwd);
}
}
输出为
current working directory is: /tmp