c++跨平台获取当前路径
时间: 2023-09-09 14:09:59 浏览: 180
要实现跨平台获取当前路径,可以使用以下代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <direct.h>
#define GetCurrentDir _getcwd
#else
#include <unistd.h>
#define GetCurrentDir getcwd
#endif
int main() {
char currentDir[FILENAME_MAX];
if (GetCurrentDir(currentDir, FILENAME_MAX) != NULL) {
printf("Current directory: %s\n", currentDir);
} else {
printf("Error getting current directory.\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
```
上面的代码使用了预处理指令来判断当前操作系统是否为 Windows。如果是 Windows 系统,则使用 `_getcwd` 函数来获取当前路径;否则,使用 `getcwd` 函数。
注意,`FILENAME_MAX` 是一个宏,表示文件名的最大长度。在 Windows 上,该值为 260;在 Linux 上,该值为 4096。因此,为了保证代码的可移植性,应该使用该宏来定义字符数组的大小。
阅读全文