基础知识篇——system函数

article/2025/8/22 17:19:20

system是一个C语言和C++下的函数。windows操作系统下system () 函数详解主要是在C语言中的应用,system函数需加头文件<stdlib.h>后方可调用。

Windows函数

函数名: system
功 能: 发出一个DOS命令
用 法: int system(char *command);

#include <stdlib.h>
#include <stdio.h>
int main(void)
{printf("About to spawn and run a DOS command\n");system("dir");return 0;
}

又如:system(“pause”)可以实现冻结屏幕,便于观察程序的执行结果;

system(“CLS”)可以实现清屏操作。
而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。

  • 例如,用 system(“color 0A”); 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
    0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
#include "pch.h"
//#include<cstdio>
#include<iostream>
#include<string>
//#include<cstdlib>
int print()
{std::cout<<" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n";std::cout<<" =======C++语言关机程序 ======\n";std::cout<<"║※1.实现1定时关闭计算机     ║\n";std::cout<<"║※2.立即关闭计算机         ║\n";std::cout<<"║※3.注销计算机             ║\n";std::cout<<"║※0.退出系统               ║\n";std::cout<<" =============================\n";return 0;
}
int main()
{system("title C++ shutdown program");        //设置cmd窗口标题system("mode con cols=48 lines=25");//窗口宽度高度system("color 0B");system("date /T");system("TIME /T");char cmd[20] = "shutdown -s -t ";char t[5] = "0";print();int c;std::cin >> c;switch (c){case 1:printf("您想在多少秒后自动关闭计算机?(0~600)\n"); std::cin >> t;system(strcat(cmd, t)); break;case 2:system("shutdown -p"); break;case 3:system("shutdown -l"); break;case 0:break;default:std::cout << "Error!" << std::endl;}system("pause");exit(0);return 0;
}

在这里插入图片描述

system(“pause”)
	 system("pause");
这个函数要加在return语句之前。
  • system()就是调用(DOS)系统命令(和shell命令)。

  • pause ,即DOS命令集合中的暂停命令;
    在一个程序中写有 system(“pause”)语句时,就是说从该程序里调用了“pause”命令,即让操作系统来暂停该程序进程的执行,同时程序运行到此语句处时,会在程序的窗口上显示“Press any key to continue . . .” 也就是 “按任意键继续…”,即等待用户按下任意一个按键使该程序从暂停状态返回到执行状态继续从刚才暂停的地方开始执行。


    void system(char *cmd);

    • 参数cmd,DOS命令,如Pause, cls
    • 返回值:无。
    • 在VC 6.0下,要添加如下的头文件!
      #include <stdlib.h>

Linux/Unix函数

  • 执行shell 命令
  • 相关函数
    fork,execve,waitpid,popen
  • 表头文件
    #include<stdlib.h>
  • 定义函数
    int system(const char * string);
  • 函数说明
    system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。
  • 返回值
    如果fork()失败 . 返回-1:出现错误
    如果exec()失败,表示不能执行Shell,返回值相当于Shell执行了exit(127)
    如果执行成功,则返回子Shell的终止状态
    如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),仅当命令处理程序可用时,返回非零值,可以通过这一特征判断在一个给定的操作系统上是否支持system函数(当system函数返回值为0时,表明system函数无效,在UNIX系统中,system函数总是可用的);。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功。
    附加说明
    在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
#include<stdlib.h>
main()
{
system(“ls -al /etc/passwd /etc/shadow”);
}
执行结果:
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
-r--------- 1 root root 572 Sep 2 15 :34 /etc/shado

与exec的区别
1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程
2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程


http://chatgpt.dhexx.cn/article/fyku4oqh.shtml

相关文章

php system函数用法,system函数如何使用?总结system函数实例用法

这篇文章主要简单分析了linux下system函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下简单分析了linux下system函数的相关内容,具体内容如下int libc_system (const char *line) {if (line == NULL) /* Check that we have a command processor available. It might …

system函数返回值

system&#xff08;执行shell 命令&#xff09; 相关函数 fork&#xff0c;execve&#xff0c;waitpid&#xff0c;popen 表头文件 #include<stdlib.h> 定义函数 int system(const char * string); 函数说明 system()会调用fork()产生子进程&#xff0c;由子进程来调…

c++system函数

希望各位给个赞&#xff0c;来个关注&#xff0c;100%回关 前言 system是一个比较常用的函数&#xff0c;说白了就是dos指令&#xff0c;下面说几个常用的 所需头文件&#xff1a;windows.h 1.system("cls") cls的作用是清屏,会把控制台都清空 #include<iostream&…

system函数

system函数的头文件: #include<stdlib.h>(我喜欢用万能头) 这是一个很好的用来 坑人 的函数 system(“cls”)可以实现清屏操作 #include<bits/stdc.h> #include<windows.h>//Sleep函数 using namespace std; int main() { cout<<“abcdefg”; Sleep(50…

system 函数常用方法

Hello&#xff0c;又见到你了&#xff0c;今天继续来介绍system函数的用法&#xff1b; 如果你的扫毒软件拦截了这个&#xff0c;说是病毒&#xff0c;不用怕&#xff0c;把它关了&#xff0c;我保证它不是病毒&#xff0c;关了之后就可以用了 1&#xff0c;首先登场的就是 sys…

对于强化学习的梳理

强化学习&#xff08;增强学习&#xff09; 概述 知识联系 强化学习是属于机器学习的一种&#xff0c;机器学习主要分监督学习、非监督学习、半监督学习、增强学习。 强化学习的核心逻辑&#xff0c;那就是智能体&#xff08;Agent&#xff09;可以在环境&#xff08;Envir…

多智能体强化学习:合作关系设定下的多智能体强化学习

0 前言 在多智能体系统中&#xff0c;一个智能体未必能观测到全局状态 S。设第 i 号智能体有一个局部观测&#xff0c;它是S的一部分。 我们假设所有的局部观测的总和构成了全局状态 1 合作关系设定下的策略学习 MARL 中的 完全合作关系 (Fully-Cooperative) 意思是所有智能…

强化学习基础

https://www.toutiao.com/a6641864763305361927/ 2019-01-02 19:47:27 内容目录&#xff1a; 一、强化学习的成功 二、概念和基础 2.1设计强化学习系统 2.2人工智能环境类型 三、问题公式化 3.1数学公式 3.2马尔可夫决策过程 3.3价值函数 四、RL训练术语 4.1基于模型…

强化学习基础05——gym

OpenAI gym OpenAI gym是强化学习最常用的标准库&#xff0c;如果研究强化学习&#xff0c;肯定会用到gym。 gym有几大类控制问题&#xff0c;第一种是经典控制问题,比如cart pole和pendulum。 Cart pole要求给小车一个左右的力&#xff0c;移动小车&#xff0c;让他们的杆子…

联邦强化学习

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/123710121 一、联邦强化学习介绍 强化学习&#xff08;RL&#xff09;是机器学习的一个分支&#xff0c;主要研究序列决策问题&#xff0c;强化学习系统通常由一个动态环境和与环境进行交互的一个或多…

初探强化学习(7)基于模型的强化学习的应用综述

本文是直接翻译一篇文章的&#xff0c;我先把原文地址放在这里。 原文名字为&#xff1a;Survey of Model-Based Reinforcement Learning: Applications on Robotics 这是一个2017年的论文 1. Introduction 强化学习&#xff08;Regulation Learning&#xff0c;RL&#xff0…

强化学习常见案例

文章目录 1. 有趣的强化学习视频1.1 小红小蓝捉迷藏1.2 红球绿球1.3 OpenAI机器人跑步1.4 OpenAI赛艇游戏&#xff08;CoastRunners&#xff09; 2.可以交互操作的游戏2.1 GridWorld2.2 Puck world 入门强化学习的时候&#xff0c;看到许多教程都给了很多强化学习的例子&#x…

多任务深度强化学习入门

理论概述 多任务深度强化学习&#xff0c;英文Multi-Task Deep Reinforcement Learning &#xff0c;简称MTDRL或MTRL。于MARL不同&#xff0c;它可以是单智能体多任务的情况&#xff0c;也可以是多智能体多任务的情况。 现在的深度强化学习领域虽然在很多特定任务上有着超越…

初探强化学习(11)Dyna类型的强化学习

为什么研究Dyna类型的强化学习呢&#xff1f; 主要是因为这个类型的强化学习是融合了model-based和model free两个类型的强化学习。 主要参考的博客是这个。说实话&#xff0c;我也是时隔三天后&#xff0c;第三次看了这个博客才彻底明白的。至于为什么名师&#xff0c;是因为我…

强化学习笔记:强化学习的约束

1 所需的样本数量过大 深度强化学习一个严重的问题在于需要巨大的样本量。举个例子&#xff0c;玩Atari游戏 图 19.17 中纵轴是算法的分数与 人类分数的比值&#xff0c; 100% 表示达到人类玩家的水准。 图中横轴是收集到的游戏帧数&#xff0c;即样本数量。 Rainbow DQN 需…

强化学习的模型

文章目录 前言一、强化学习是什么&#xff1f;二、基本模型1.基本框架2.学习过程 三.马尔科夫决策过程&#xff08;Markov Decision Process. MDP&#xff09;1.马尔科夫性质2.MDP的基本组成部分3.MDP的基本流程 四、基于模型和免模型的强化学习1.模型2.基于模型的强化学习&…

深度强化学习调研

深度强化学习&#xff08;DRL&#xff09; &#xff08;一&#xff09;强化学习 强化学习&#xff08;Reinforcement Learning&#xff0c;简称RL&#xff09;是机器学习领域的一个研究热点&#xff0c;当前已经广泛应用于工业制造、仿真模拟、机器人控制、优化与调度、游戏博…

强化学习总结

强化学习 一、强化学习概述 1.强化学习简介 强化学习最早可以追溯到早期控制论以及统计、心理学、神经科学、计算机科学等学科的一些研究。在最近的五到十年中&#xff0c;强化学习在机器学习和人工智能研究者中得到了大量的关注&#xff0c;它描绘了一种在不进行具体指导的情…

强化学习介绍

文章目录 1 什么是强化学习&#xff1f;2 强化学习的特征与特点3 强化学习的要素与框架3.1 Policy3.2 Reward3.3 Value3.4 model3.5 Return(cumulative future reward) 回报|未来累积回报3.6 Discounted return 折扣回报 4 强化学习流程5 例子 马里奥 &#xff08;一定要看&…

强化学习(Q-learning)

强化学习RF简介 强化学习是机器学习中的一种重要类型&#xff0c;一个其中特工通过 执行操作并查看查询查询结果来学习如何在环境中表现行为。 机器学习算法可以分为3种&#xff1a;有监督学习&#xff08;Supervised Learning&#xff09;、无监督学习&#xff08;Unsupervi…