当前位置: 首页 > article >正文

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

.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.kler.cn/a/551477.html

相关文章:

  • 2025年实时操作系统的全面对比与分析
  • 企业选择第三方软件测评服务公司有什么好处?
  • 【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑮】
  • 【js逆向_入门】图灵爬虫练习平台 第四题
  • mybatis存储过程返回list
  • Helm快速开始
  • 【SQL】SQL多表查询
  • Windows系统安装GPU驱动
  • 数据分析的AI+流程(个人经验)
  • 一笔画-获取图像轮廓坐标点
  • JavaScript设计模式 -- 迭代器模式
  • vmware下ubuntu无法上网,电脑通过wifi连网
  • 罗德与施瓦茨ZNB4,4.5GHz网络分析仪的佼佼者
  • openGauss 3.0 数据库在线实训课程18:学习视图管理
  • 基于Qlearning强化学习的1DoF机械臂运动控制系统matlab仿真
  • 【GPIO详解及实践示例】
  • Leetcode 3459. Length of Longest V-Shaped Diagonal Segment
  • 大数据学习(48) - Flink状态种类
  • 李代数和李群的转化方法
  • Openssl交叉编译