C++ 运行命令行
本文将简要讨论通过 C++ 程序在命令处理器中运行命令的 system() 方法。
C/C++ 提供了一个函数,可以执行此操作,而无需产生另一个可以运行命令行处理器来运行 CMD 命令的进程。
使用 system() 方法在 C++ 中运行命令行命令
system()函数早已成为C标准库的一部分,我们也可以将它包含在C++代码中,而不需要额外的库。 该函数从调用进程运行 shell 命令。
但是,应该注意的是,system() 是针对特定用例而设计的,在这些用例中,调用程序需要生成单个子进程并快速开始等待它终止。
因此,该功能是使用作为系统 API 接口一部分的多个系统调用来实现的。
在Linux环境中,程序员不需要为控制新子进程的创建和删除的fork、exec和wait函数而头疼。
C++ 中 system() 方法的语法、参数和返回值
该函数的语法是:
int system (const char* cmd_text);
传递给 system()
函数的唯一参数是包含命令文本的字符数组。 命令处理器执行该命令文本。
请记住,我们可以将空指针作为参数传递给该函数来检查命令处理器的可用性。
如果命令作为参数传递给该函数,system() 通常会返回该命令的退出状态。 不过,有时返回值取决于命令和实用程序。
假设传递一个空指针来检查命令处理器的可用性。 在这种情况下,如果命令处理器不可用,则返回 0,否则返回非零值。
演示 C++ 运行命令行的示例代码
以下示例显示了 system()
函数的最基本应用,该函数运行 date 命令行实用程序来打印当前系统日期。
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
system("date");
return 0;
}
它将生成以下输出:
Sat Sep 10 09:17:19 PM UTC 2022
让我们看另一个示例,其中我们将首先检查命令处理器是否存在,然后使用 system()
函数运行 ls -l
命令。
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
if (system(NULL))
{
cout<<"Command Processor OK"<<endl;
cout<<"Running ls command"<<endl;
system("ls -l");
}
else
cout<<"Command Processor not found!!"<<endl;
return 0;
}
它将给出以下输出:
Command Processor OK
Running ls command
total 24
-rwxr-xr-x 1 root root 16744 Sep 10 21:18 jdoodle
-rw-r--r-- 1 root root 315 Sep 10 21:18 jdoodle.cpp
相关文章
C++ 中的递归 Lambda 函数
发布时间:2023/09/02 浏览次数:143 分类:C++
-
在本文中,我们将了解 C++ 中可用的递归 lambda。C++ 递归 Lambda 函数 递归是指函数(直接或间接)调用自身的过程,这个过程对应的函数称为递归函数。 递归 lambda 表达式是此过程的结果。
C++包含路径的概念
发布时间:2023/09/02 浏览次数:97 分类:C++
-
包含路径用于告诉编译器在哪里查找头文件。 编译器将在这些路径指定的目录中搜索,直到找到名称匹配的头文件。Visual Studio IDE 中的 C++ 包含路径目录
在 C++ 中指定 64 位整数
发布时间:2023/09/02 浏览次数:50 分类:C++
-
在本文中,我们将讨论和学习如何在 C++ 中指定 64 位整数。 此外,当使用 64 位整数出现问题时,我们将比较旧方法。
在 C++ 中使用 128 位整数
发布时间:2023/09/02 浏览次数:170 分类:C++
-
在本文中,我们将讨论 C++ 中的 128 位整数。 我们还将了解为什么需要它以及 C++ 中可能的替代方案。
C++ 中的默认构造函数和 default 关键字
发布时间:2023/09/02 浏览次数:127 分类:C++
-
本文讨论 C++ 中的默认构造函数以及新引入的关键字 default。首先,让我们了解一下C++中的默认构造函数。 默认构造函数是一种特殊的构造函数,它没有参数,用于为类的数据成员设置默认值。
C++ 中的空构造函数
发布时间:2023/09/02 浏览次数:165 分类:C++
-
C++ 中的空构造函数是一种不执行任何操作的特殊类型构造函数。 编译器知道没有代码可以执行,因此不会为构造函数生成任何可执行代码。