在Windows和Linux平台上使用c++获取文件当前路径

embedded/2025/2/21 10:41:07/

.h

#include <iostream>
#include <string>
#ifdef _WIN32
#include <windows.h>  // 包含Windows API定义
#else
#include <limits.h> // 为了PATH_MAX
#include <unistd.h> // 为了getcwd
#endif // _WIN32
using namespace std;
#ifdef _WIN32
//获取当前路径
string getAbuselatePath() {char buffer[MAX_PATH] = { 0 }; // MAX_PATH常量定义了路径的最大长度// 获取当前目录if (GetCurrentDirectoryA(MAX_PATH, buffer) != 0) {return std::string(buffer); // 成功时返回当前目录}else {// 如果失败,可以在这里处理错误return std::string();}
}
#else
//获取当前路径
string getAbuselatePath() {char buffer[PATH_MAX];if (getcwd(buffer, sizeof(buffer)) != NULL) {return std::string(buffer); // 成功时返回当前目录}else {// 如果失败,可以在这里处理错误return std::string();}
}
#endif // _WIN32

main.cpp

#include <iostream>
#include "abuselatePath.h"
int main() 
{string s = getAbuselatePath();cout << s << endl;
}

Windows:

Linux:


http://www.ppmy.cn/embedded/163568.html

相关文章

校招后台开发:JAVA和GO选哪一个?

有同学过来咨询说&#xff1a;“大拿老师我之前有过go语言的实习&#xff0c;但是我在校招里面发现go语言的校招岗位不是很多&#xff0c;我是投java的岗位还是投go的岗位&#xff1f; 这个问题呢这两年来也有很多同学问过&#xff0c;下面我们来详细说说应该怎么选&#xff1…

Spark 性能优化(四):Cache

在 Spark 中&#xff0c;缓存是一种将计算结果存储在内存中的方式&#xff0c;目的是加速后续操作。当你执行迭代算法或查询时&#xff0c;如果多次重复使用相同的数据集&#xff0c;缓存可以避免每次都重新计算相同的转换操作。通过缓存&#xff0c;Spark 可以将数据存储在内存…

02 redis安装

文章目录 redis安装redis启动前端启动后端启动&#xff08;守护进程启动&#xff09; redis安装 第一步&#xff1a;安装 C 语言需要的 GCC 环境 yum install -y gcc-c yum install -y wget第二步&#xff1a;下载并解压缩 Redis 源码压缩包 wget http://download.redis.io/…

Django ModelForm使用(初学)

1.目的是根据员工表字段&#xff0c;实现一个新增员工的数据填写页面 2.在views.py文件中按下面的格式写 定义 ModelForm 类&#xff1a;UserModelForm &#xff08;自己命名的类名&#xff09;使用时需要导入包 定义视图函数&#xff1a;user_model_form_add&#xff08;在函…

推荐几款较好的开源成熟框架

一. 若依&#xff1a; 1. 官方网站&#xff1a;https://doc.ruoyi.vip/ruoyi/ 2. 若依SpringBootVueElement 的后台管理系统&#xff1a;https://gitee.com/y_project/RuoYi-Vue 3. 若依SpringBootVueElement 的后台管理系统&#xff1a;https://gitee.com/y_project/RuoYi-Cl…

Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

1.软硬链接 1.1硬链接 硬链接&#xff08;Hard Link&#xff09;是Linux系统中的一种文件链接方式&#xff0c;它允许多个文件名指向同一个inode&#xff08;索引节点&#xff09;&#xff0c;从而实现多个文件名指向同一个物理文件数据块。 硬链接与原始文件之间没有任何区…

Ubuntu部署deepseek(离线版)

由于实验室的服务器无法连外网,只能离线手动安装了!!! 离线下载ollama-linux-amd64.tgz 网址:https://ollama.com/download/ollama-linux-amd64.tgz 第一步:解压安装包 切换到目标文件夹 cd /home/zhangh/Ollama 解压安装包 tar -xzf ollama-linux-amd64.tgz -C /usr/…

深入浅出:CUDA是什么,如何利用它进行高效并行计算

在当今这个数据驱动的时代&#xff0c;计算能力的需求日益增加&#xff0c;特别是在深度学习、科学计算和图像处理等领域。为了满足这些需求&#xff0c;NVIDIA推出了CUDA&#xff08;Compute Unified Device Architecture&#xff09;&#xff0c;这是一种并行计算平台和编程模…