ubuntu下 C/C++程序读取设置环境变量

这篇具有很好参考价值的文章主要介绍了ubuntu下 C/C++程序读取设置环境变量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设置环境变量很简单比如:

export QMCY_LOCAL_PORT=8888

追加的话

export QMCY_LOCAL_PORT=$QMCY_LOCAL_PORT:8000

可以通过echo回显

ubuntu下 C/C++程序读取设置环境变量,linux,运维,服务器

读取的话 main函数多加一个env参数 一个字符串数组 然后遍历这个数组 即可

ubuntu下 C/C++程序读取设置环境变量,linux,运维,服务器

使用的时候 如下:文章来源地址https://www.toymoban.com/news/detail-537574.html

bool QMCY_APP::Init(std::string &config_file, char *env[])
{
	char *file_content = nullptr;
	int size = 0;

	unsigned seed = time(0);
	srand(seed);


	if(config_file.empty())
	{
		std::cout<<"config file is null"<<std::endl;
		return false;
	}
	
	FILE * fp = fopen(config_file.c_str(),"r");
	if(fp == NULL)
	{
		return false;
	}

	fseek(fp, 0, SEEK_END);
	size = ftell(fp);


	file_content = (char *)malloc(size+1);
	if(file_content)
	{
		fseek(fp, 0, SEEK_SET);
		fread(file_content,size,1,fp);

		ReadConfig(file_content);
		
		free(file_content);

	}
	
	fclose(fp);	




	int i = 0;
	char key[20] ={0},value[30]={0};
	
	for(; env[i]; i++){
		std::string temp = env[i];

		std::size_t found = temp.find(m_basic_info.server_ip_name);
		if(found!= std::string::npos)
		{
			int converted = sscanf(temp.c_str(),"%[^=]=%s",key,value);
			if(converted == 2)
			{
				m_basic_info.server_ip = value;				
			}
			
		}


		found = temp.find(m_basic_info.server_port_name);
		if(found!= std::string::npos)
		{
			int converted = sscanf(temp.c_str(),"%[^=]=%s",key,value);
			if(converted == 2)
			{
				m_basic_info.server_port = atoi(value);
			}

		}


		found = temp.find(m_basic_info.local_port_name);
		if(found!= std::string::npos)
		{
			int converted = sscanf(temp.c_str(),"%[^=]=%s",key,value);
			if(converted == 2)
			{
				//std::cout<<"local port :"<<key<<" :"<<value<<std::endl;
				m_basic_info.local_port = atoi(value);				
			}
		}


		
	}


	if(m_basic_info.local_port<1024|| m_basic_info.local_port >65535 )
	{
		m_basic_info.local_port = 8888;
	}

	if(m_basic_info.server_port<1024|| m_basic_info.server_port >65535 )
	{
		m_basic_info.server_port = 8888;
	}



	zlog_info(g_zlog,"APP run info:[server ip = %s,server port=%d, local port = %d]",m_basic_info.server_ip.c_str(),m_basic_info.server_port,m_basic_info.local_port);


	std::string posturi = "http://";
	posturi.append(m_basic_info.server_ip);
	posturi.append(":");	
	posturi.append(std::to_string(m_basic_info.server_port));	


	m_http_client = std::make_shared<httplib::Client>(posturi);

	//m_log = HANA<LOG>::GetHANA();

	m_thread_pool = std::make_shared<BlackBox>(MAX_THREADS,MAX_QUEUE_SIZE);
	m_thread_pool->init();


	
	//m_queue = std::make_shared<BlockQueue<LED_MSG>>(30);

	m_inner_queue = std::make_shared<BlockQueue<INNER_MSG>>(30);

	return true;	
		
}

到了这里,关于ubuntu下 C/C++程序读取设置环境变量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu环境变量的三种设置方法

    打开~/.bashrc,添加行: 使生效: 在里面加入: 使生效 用户登录后加载profile和bashrc的流程如下: 说明: bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh 随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本, 而.bashrc脚本

    2024年02月13日
    浏览(40)
  • 【Linux初阶】环境变量 | 如何设置、获取环境变量?

     🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【Linux初阶】 ✒️✒️本篇内容:讨论为什么指令作为一个可执行程序不需要加 ./运行;环境变量为什么会自己恢复;环境变量基本概念;常见环境变量;查看、设置、清除环境变量的方法;环境变量命令汇总;进程中

    2024年02月05日
    浏览(53)
  • 【Ubuntu】在.bashrc文件中误设置环境变量补救方法

    这里是vim也不在PATH中了,因为 解决方法就是在输入vim之后提示的vim路径下用vim打开该文件,然后改回来

    2024年02月19日
    浏览(34)
  • Linux 设置 jdk 环境变量

    本文介绍在 Linux 中设置 jdk 环境变量方法,适用于 CentOs 和 Ubuntu 等 Linux 版本。 准备 JDK 文件 这里准备的 jdk 版本是 1.8.0_131。 链接:https://pan.baidu.com/s/1jsLxPkmH1nRfnICYOGK_ow 提取码:3l6y 创建 java 存放路径 这里将 jdk 存放在 /usr/local/java 目录 解压文件 将 jdk 文件上传到 linux 系统中

    2024年02月12日
    浏览(40)
  • Linux Java环境变量设置教程

    目前Windows 10系统已经很成熟,大多数人开发都在Windows 10系统下进行开发,于是乎我做一下Java环境变量在Windows 10配下的配置: 具体操作如下: JDK下载地址(选择合适JDK版本下): JDK10.0.1 Java Downloads | Oracle jdk-9+181_windows-x64_ri Java Platform, Standard Edition 9 ReferenceImplementations JDK 

    2024年02月09日
    浏览(43)
  • InnoSetup 安装程序设置环境变量

    InnoSetup 通过写入注册表值实现安装程序设置系统全局环境变量 环境变量以字符串值存储在注册表中,因此可以使用 [Registry] 区段操作它们。系统范围的环境变量位于: \\\"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment\\\" 特定于用户的环境变量位于: \\\"HKEY_CURRENT_USERE

    2023年04月23日
    浏览(34)
  • Linux系统安装conda,镜像设置,环境变量

    1,我们现在学习Linux系统,首先得有个服务器的账号,这个要看自己的学校里面有没有专门做生信的课题组问问,或者去淘宝买,或者去那个组学大讲堂公众号里面有服务器租借的(没广告),租个好点的服务器,价格估计5000-10000半年不等的价格,能处理一些转录组等大数据

    2024年02月15日
    浏览(40)
  • 【hadoop】在linux上设置Hadoop的环境变量

    使用下面命令对hadoop的压缩包进行解压 在linux中,~/.bash_profile文件是设置环境变量的文件,我们使用vi进行编辑。 将下面代码添加进~/.bash_profile文件中,保存退出即可。 注:将 /root/training/hadoop-2.7.3 改成你自己的hadoop地址。 上面已经编辑了环境变量,但这还不够,需要再刷新

    2024年02月16日
    浏览(42)
  • 【Shell 命令集合 系统设置 】⭐⭐⭐Linux 设置环境变量setenv命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 setenv命令是用于在Linux系统中设置环境变量的命令。环境变量是一种在操作系统中存储的键值对,用于存储系统配置信息、用户偏好设置以及程序运行所需的路径等信息。通过设置环境变量,可以方便地在不同的程序之间共享数据。 seten

    2024年02月08日
    浏览(52)
  • ubuntu18.04查询opencv库路径,检查Opencv有无正确设置环境变量,以及卸载和安装教程

    1. 打开终端或命令提示符 2. 输入以下命令来查询OpenCV库的路径:    这个命令将返回OpenCV库的链接选项,其中包含库的路径信息。 3. 查找返回结果中的`-L`选项,后面跟着的路径就是OpenCV库的路径。    例如,如果返回结果中有`-L/usr/local/lib`,那么`/usr/local/lib`就是OpenCV库的路

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包