一个有意思的问题dev 运行 Cpp 的方式

今天我室友问了我一个问题,如何关闭一个正在Windows上运行的有没有任何图形界面的问题。
然后我叫他打开任务管理器,按照进程的名字查找,找到后直接结束进程就行了。
随后我又想原理,任何程序在操作系统上运行都是以一个进程的方式运行的,你只要有一个可以管理进程的工具你就可以杀死任何非系统的核心进程,除非这是个病毒(我这句话很不严谨,勿喷,参考就好)。这个软件之所以没有任何界面,是因为没有调用操作系统的GUI接口而已。但是仍然改变不了它是一个进程的本质。

不知道为什么,我突然之间想到一个问题,为什么我用 devc++ 运行一个没有使用图形库的 C++ 程序的时候会打开一个命令窗口呢,虽然命令窗口里面的内容不是 GUI, 但是窗口本身就是一个GUI啊,想到这里,我敏感的意识到了可能devc++运行 c++时会先启动一个终端进程,然后在这个终端进程中又新建了一个子进程来运行我们的 c++代码,别问我为什么会想到这些,是因为我敲Linux敲麻了。。。

后来我做了一系列的验证,说明我的想法是对的

程序代码和启动运行后的窗口

有人很奇怪,怎么连头文件都不写,其实<stdio.h> 头文件主要是标准输入输出调用,我这里没有任何输入输出,固然不用写,哈哈哈哈
在这里插入图片描述

找到我写的C++程序的运行的进程获得进程 id

在这里插入图片描述

用命令查找它的父进程 id 并找到父进程图标

在这里插入图片描述

发现果然启动了一个终端进程,虽然我不知道这个终端具体是什么,但我能确定的时它能显示控制台输出,因为我尝试着打开了它,并发现它是来自 devC++的一个程序
在这里插入图片描述

继续找爷爷进程,就是 CosolePauser.exe 的父进程

发现果然是 devc++, 原来就是 devc++ 创建一个有控制台的进程,然后又通过这个进程有创建了运行我们写的代码的进程
在这里插入图片描述
在这里插入图片描述

可能这篇文章没啥用,但我就是觉得有意思。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒙奇·D·路飞·宝亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值