C/C++编程:std::system、std::getenv

1060 篇文章 300 订阅

C++标准库的工具包提供了两个API与当前环境交流
在这里插入图片描述

std::system

#include <cstdlib>
int system( const char* command );

作用:

  • 以参数command调用允许环境的命令处理器(例如 /bin/sh 、 cmd.exe 、 command.com )。

参数:

  • command
    • 标识要运行于命令处理器的命令字符串。
    • 若给出空指针,则检查命令处理器的存在性

返回值:

  • 实现定义值。
  • 若 command 为空指针,则当且仅当命令处理器存在才返回非零值。

API: https://zh.cppreference.com/w/cpp/utility/program/system

示例:

#include <cstdlib>
#include <fstream>
#include <iostream>

int main()
{
    std::system("ls -l >test.txt"); // 执行 UNIX 命令 "ls -l >test.txt"
    std::cout << std::ifstream("test.txt").rdbuf();
}

在这里插入图片描述

std::getenv

char* getenv( const char* env_var );

功能:

  • 于宿主环境(操作系统)提供的环境列表搜索匹配 env_var 所指向的 C 字符串,并返回指向与匹配的列表成员关联的 C 字符串的指针。

参数:

  • env_var - 标识要查找的环境变量名的空终止字符串

返回值:

  • 标识环境变量值的字符串,或若找不到这种字符串则为空指针。

注解:

  • POSIX 系统上,环境变量亦可通过于 <unistd.h> 声明为extern char **environ;的全局变量 environ ,及通过可选的 main 函数第三参数 envp 访问。

示例:

#include <iostream>
#include <cstdlib>
 
int main()
{
    if(const char* env_p = std::getenv("PATH"))
        std::cout << "Your PATH is: " << env_p << '\n';
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值