C++检测进程数量,打开一定数量的进程(三)

一下程序可以实现打开3个进程,并且实时的监控进程数量,等到所有的进程都退出后,再重新创建3个进程。如此循环往复

#include "stdafx.h"

#include <iostream>

#include <windows.h>

#include <stdlib.h>

#include <tlhelp32.h>

#include "Psapi.h"

#pragma comment(lib,"Kernel32.lib")

using namespace std;

void openProcess()

{

STARTUPINFO si;

memset(&si,0,sizeof(STARTUPINFO));

si.cb=sizeof(STARTUPINFO);

si.dwFlags=STARTF_USESHOWWINDOW;

si.wShowWindow=SW_SHOW;

PROCESS_INFORMATION pi;

if(!CreateProcess(TEXT("D:\\abc\\abc.exe"),//创建进程

NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi))

{

cout<<"create failed"<<endl;

}

else

cout<<"create a process successfully!"<<endl;

Sleep(300);

CloseHandle(pi.hThread);

CloseHandle(pi.hProcess);

printf("新进程的ID号:%d\n",pi.dwProcessId);

printf("新进程的主线程ID号:%d\n",pi.dwThreadId);

}

int _tmain(int argc, TCHAR* argv[])

{

for(int i=0;i<3;i++)

{

openProcess();

Sleep(3000);

}

int num=0;

TCHAR exe_name[256]=_T("abc.exe");

PROCESSENTRY32 pe32;

HANDLE HprocessSnap/*=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0)*/;

pe32.dwSize=sizeof(pe32);

BOOL bMore/*=::Process32First(HprocessSnap,&pe32)*/;

while(num>=0)

{

num=0;

HprocessSnap=::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//不断重复创建进程快照

if(HprocessSnap==INVALID_HANDLE_VALUE)

{

printf("create 进程快照失败!\n");

return -1;

}

bMore=::Process32First(HprocessSnap,&pe32);

while(bMore)

{

if(!_tcscmp(exe_name,pe32.szExeFile))//不停的查询自己创建的进程是否还在运行

{

num++;

printf("find a processManage.exe process num is %d\n",num);

}

bMore=::Process32Next(HprocessSnap,&pe32);

}

if(num>0)

{

Sleep(1000);

}

else

{

for(int i=0;i<3;i++)

{

openProcess();

Sleep(3000);

}

}

}

return 0;

}

时间: 2024-08-05 14:43:56

C++检测进程数量,打开一定数量的进程(三)的相关文章

Nginx优化_访问并发量(进程可以打开的最大文件数量)

如果客户端访问服务器提示“Too many open files”如何解决? [[email protected] ~]# ab -n 2000 -c 2000 http://192.168.1.100/    #高并发访问Nginx代理的网站,提示打开文件数量过多 Benchmarking 192.168.1.100 (be patient) socket: Too many open files (24) 优化步骤: 1.  调整Nginx的主配置文件,增加并发量. [[email prot

CentOS 7下修改rabbitmq打开文件数量方法

以下为使用systemd的修改方法: 1.系统层修改: 通过修改sysctl配置,提高系统的打开文件数量 vim /etc/sysctl.conf,添加: fs.file-max = 65535 执行sysctl -p 此步骤调整后,打开rabbitmq管理页面,会发现rabbitmq最大的打开文件数量并未调整,需要进行下面步骤 2.修改rabbitmq配置 修改/etc/systemd/system/multi-user.target.wants/rabbitmq-server.service

查询修改linux 打开文件句柄数量

查询系统支持最大可打开文件句柄数量: #vi /proc/sys/fs/file-max 查询当前连接用户最大可打开文件句柄数量: #ulimit -a 修改当前连接用户最大可打开文件句柄数量: #ulimit -f 81920 修改linux内核设置最大可打开文件句柄数量: #vi /etc/sysctl.conf fs.file-max=81920 修改系统软硬件支持打开最大够本数量 #vi /etc/security/limit.conf * soft nproc 81920 * hard

通过文件查进程,通过进程查打开的文件等等

fuser - 文件.目录.sockets去找出使用它们的程序 在卸载某个usb的时候,提示设备忙,这个时候就可以使用fuser -k directory 来杀死占用usb路径下的进程,然后再卸载就ok了. 也可以使用fuser -k directory 查看这个文件系统.或sockets等等,被多少程序所使用. lsof - 列出打开的文件.可以查询某个程序开启或者使用的文件与设备 1. lsof abc.txt 显示开启文件abc.txt的进程 2. lsof -i :22 知道22端口现在

js如何检测打开窗口是否存在的三个方法?

js打开窗口一般也就是使用window.open方法: win = window.open(CHILD_WINDOW_URL, CHILD_WINDOW_NAME, CHILD_WINDOW_ATTRS); 然后父窗口可以通过win 取得子窗口的引用,然后就可以检测 win是否定义和win.closed来检测窗口是否打开. 但是如果刷新父窗口,父窗口就会失去这些引用,那么我们如何再次检测子窗口是否存在?我想大概有以下方法: 方法一 使用cookie 打开子窗口的时候,子窗口或者父窗口可以写一个c

第5章 进程环境(4)_进程资源限制

5. 进程资源限制 (1)getrlimit.setrlimit函数 头文件 #include<sys/resource.h> 函数 int* getrlimit(int resource, struct rlimit* rlptr); 返回值 成功返回0,出错返回非0 功能 获得资源限制,存放在rlptr指向的结构体中 参数 (1)rlimit结构体 struct rlimit{ rlim_t rlim_cur; //软限制:当前限制 rlim_t rlim_max; //硬限制:rlim_

进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别【转】

本文转载自:http://www.cnblogs.com/youngforever/p/3250270.html 这两天看进程的同步与通信,看了几本书上的介绍,也从网上搜了很多资料,越看越迷惑,被这几个问题搞得很纠结. 进程同步与互斥的区别? 进程的同步方式有哪些? 进程的通信方式有哪些? 进程同步与通信的区别是什么? 线程的同步/通信与进程的同步/通信有区别吗? 在好多教材上(包括国内与国外的)也没有明确这些概念,现在对每个问题还没有准确的答案,下面将自己的理解记下来,以后再补充. 参考资料:

Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度(六)

日期 内核版本 架构 作者 GitHub CSDN 2016-05-29 Linux-4.5 X86 & arm gatieme LinuxDeviceDrivers Linux进程管理与调度-之-进程的创建 前言 Linux下有3个特殊的进程,idle进程(PID=0), init进程(PID=1)和kthreadd(PID=2) * idle进程由系统自动创建, 运行在内核态 idle进程其pid=0,其前身是系统创建的第一个进程,也是唯一一个没有通过fork或者kernel_thread产

系统编程之进程的创建.僵尸与孤儿进程

一.进程 进程是正在执行的程序实例.执行程序时,内核会将程序代码载入虚拟内存,为程序变量分配空间,在内核中建立相应的数据结构,以记录与进程有关的各种信息(比如,进程ID.用户ID.组ID以及终止状态等) 在内核看来,进程是一个个实体,内核必须在它们之间共享各种计算机资源.对于像内存这样的受限资源来说,内核一开始会为进程分配一定数量的资源,并 在进程的生命周期内,统筹该进程和整个系统对资源的需求,对这一分配进行调整.程序终止时,内核会释放所有此类资源,供其他进程重新使用.其他资源(如 CPU.网络