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
相关文章
Arduino 复位
发布时间:2024/03/13 浏览次数:315 分类:C++
-
可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。
Arduino 的字符转换为整型
发布时间:2024/03/13 浏览次数:181 分类:C++
-
可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。
Arduino 串口打印多个变量
发布时间:2024/03/13 浏览次数:381 分类:C++
-
可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。