首页 > 编程语言 >Chromium base库 环境变量类使用说明c++

Chromium base库 环境变量类使用说明c++

时间:2024-10-27 16:16:13浏览次数:3  
标签:std string c++ base env variable include Chromium

1、环境变量获取和设置定义参考:

base\environment.h

base\environment.cc

// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef BASE_ENVIRONMENT_H_
#define BASE_ENVIRONMENT_H_

#include <map>
#include <memory>
#include <string>

#include "base/base_export.h"
#include "base/strings/string_piece.h"
#include "build/build_config.h"

namespace base {

namespace env_vars {

#if BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
BASE_EXPORT extern const char kHome[];
#endif

}  // namespace env_vars

class BASE_EXPORT Environment {
 public:
  virtual ~Environment();

  // Returns the appropriate platform-specific instance.
  static std::unique_ptr<Environment> Create();

  // Gets an environment variable's value and stores it in |result|.
  // Returns false if the key is unset.
  virtual bool GetVar(StringPiece variable_name, std::string* result) = 0;

  // Syntactic sugar for GetVar(variable_name, nullptr);
  virtual bool HasVar(StringPiece variable_name);

  // Returns true on success, otherwise returns false. This method should not
  // be called in a multi-threaded process.
  virtual bool SetVar(StringPiece variable_name,
                      const std::string& new_value) = 0;

  // Returns true on success, otherwise returns false. This method should not
  // be called in a multi-threaded process.
  virtual bool UnSetVar(StringPiece variable_name) = 0;
};

#if BUILDFLAG(IS_WIN)
using NativeEnvironmentString = std::wstring;
#elif BUILDFLAG(IS_POSIX) || BUILDFLAG(IS_FUCHSIA)
using NativeEnvironmentString = std::string;
#endif
using EnvironmentMap =
    std::map<NativeEnvironmentString, NativeEnvironmentString>;

}  // namespace base

#endif  // BASE_ENVIRONMENT_H_

二、例子:

以获取SSLKEYLOGFILE环境变量为例:

        std::unique_ptr<base::Environment> env(base::Environment::Create());

        std::string env_str;

        if (env->GetVar("SSLKEYLOGFILE", &env_str)){

       }

标签:std,string,c++,base,env,variable,include,Chromium
From: https://blog.csdn.net/jangdong/article/details/143267837

相关文章

  • Chromium 沙盒Sandbox源码介绍(2)
    本篇主要说下沙箱的job:一、JobLevel//TheJoblevelspecifiesasetofdecreasingsecurityprofilesforthe//Jobobjectthatthetargetprocesswillbeplacedinto.//Thistablesummarizesthesecurityassociatedwitheachlevel:////JobLevel......
  • VC++ __declspec(dllexport) 和 __declspec(dllimport)
    头文件中声明了方法,在提供者那里方法应该被声明为__declspec(dllexport),在使用者那里,方法应该被声明为__declspec(dllimport)。Class中含有一个静态变量,生成dll的时候只采用了__declspec(dllexport),使用的时候__declspec(dllimport)就派上用场了,他会告诉使用dll的工程去lib中找......
  • C++/C电子宠物1.0
    使用的是一个在线编程的网站,是linux环境https://www.onlinegdb.com/#include<iostream>#include<stdlib.h>#include<time.h>#include<unistd.h>#include<pthread.h>#include<string>usingnamespacestd;intwindow();intea......
  • 【C++ 真题】B2099 矩阵交换行
    矩阵交换行题目描述给定一个5×55\times55×5的矩阵(数学上,一个......
  • C++ 静态变量什么时候完成初始化
    C语言在编译器就完成静态变量的内存分配和初始化;始化发生在任何代码执行之前,属于编译期初始化。C++全局或静态对象当且仅当对象首次用到时才进行构造,并通过atexit()来管理对象的生命期;静态变量初始化是线程安全的。全局变量、文件域的静态变量和类的静态成员变量在m......
  • C++ Vector介绍及应用
    一.引言在C++编程中, std::vector 是一个非常重要的容器,它提供了动态数组的功能。这意味着它可以根据需要自动调整大小,存储一系列相同类型的元素,并允许快速随机访问。本文将详细介绍std::vector的基本概念、特性、常用操作以及一些实际应用场景。二.什么是std::vector? std:......
  • C++中的函数重载
    前言    在给函数命名的时候,我们通常会遇到这类问题,这类函数都是解决一个类型的问题的,例如两个数相加,两个int类型的整数相加,我们起名add1,然后两个double类型的浮点数相加,我们起名为add2......在一些小型项目中还行,但是在一些大型的项目中,这显然是不可取的。那么能不能......
  • 我有三台ubuntu服务器,手把手教我从0搭建HBase,然后往里存一些数据。
    好的,我们可以一步步来搭建一个基本的HBase集群,并在里面存储一些数据。这里的步骤包括在三台Ubuntu服务器上配置HBase所需的依赖、安装HBase、配置和启动集群、测试存储和查询数据。假设这三台服务器的IP地址分别为192.168.1.101、192.168.1.102和192.168.1.103,其中第......
  • c++数据封装
    C++ 数据封装数据封装(DataEncapsulation)是面向对象编程(OOP)的一个基本概念,它通过将数据和操作数据的函数封装在一个类中来实现。这种封装确保了数据的私有性和完整性,防止了外部代码对其直接访问和修改。所有的C++程序都有以下两个基本要素:程序语句(代码):这是程序中执行动作......
  • C++的继承和多态
    继承继承的本质意义是复用(不用写就有)父类的某些东西可以直接使用eg.但是注意:被继承的成员是新的成员,不是共用同一个成员(实例化的成员变量不同)         但是调用的函数是同一个函数继承基类成员访问方式的变化(重点)private访问 "在派......