首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

成为C/C+大佬第一步之学会system

system()用于从C / C ++程序调用操作系统命令。

注意:需要包含stdlib.h或cstdlib才能调用系统。

如果操作系统允许,我们可以使用system()执行能在终端上运行的任何命令。例如,我们可以调用Windows上的system(“ dir”)和system(“ ls”)来列出目录的内容。

编写一个可以编译并运行其他程序的C / C ++程序

我们可以使用system()从程序中调用gcc。请参阅下面为Linux编写的代码。我们可以轻松地更改代码以在Windows上运行。

system()与使用库函数:

Windows OS中system()的一些常见用法是:system(“ pause”),用于执行暂停命令并使屏幕/终端等待按键。

但是,由于以下原因,应避免调用系统命令:

这是一个非常昂贵且占用大量资源的函数调用

它不是可移植的:使用system()使得程序变得不可移植,即:它仅在系统级别上具有暂停命令的系统(例如DOS或Windows)上有效。但不会在Linux,MAC OSX和大多数其他软件上起到作用。

让我们用一个简单的C ++代码使用system(“ pause”)输出Hello World :

该程序取决于操作系统,并使用以下繁重的步骤。

它挂起您的程序,同时调用操作系统以打开操作系统外壳。

操作系统找到暂停并分配内存以执行命令。

然后,它重新分配内存,退出操作系统并恢复程序。

除了使用system(“ pause”),我们还可以使用在C / C ++中本地定义的函数。

让我们举一个简单的示例,使用cin.get()输出Hello World:

因此,我们看到,system(“ pause”)和cin.get()实际上都在等待按键被按下,但是cin.get()不依赖于操作系统,并且也不遵循上述步骤暂停程序。

同样,使用C语言,可以使用getchar()暂停程序,而无需打印消息“按任意键继续。

检查我们是否可以在OS中使用system()运行命令的常用方法

如果我们使用空指针代替命令参数的字符串,则如果命令处理器存在(或系统可以运行),则系统返回非零值。否则返回0。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201014A0IVPO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券