1#ifndef NEFORCE_CORE_SYSTEM_PROCESS_HPP__
2#define NEFORCE_CORE_SYSTEM_PROCESS_HPP__
14NEFORCE_BEGIN_NAMESPACE__
26struct process_exception final : system_exception {
27 explicit process_exception(
const char* info =
"Process Operation Failed.",
const char*
type = static_type,
28 const int code = 0) noexcept :
29 system_exception(info,
type,
code) {}
31 explicit process_exception(
const exception& e) :
32 system_exception(e) {}
34 ~process_exception()
override =
default;
35 static constexpr auto static_type =
"process_exception";
58#ifdef NEFORCE_PLATFORM_WINDOWS
74#ifdef NEFORCE_PLATFORM_WINDOWS
146 bool capture_output =
false);
223NEFORCE_END_NAMESPACE__
static bool resume(const state_info &info) noexcept
恢复进程
static NEFORCE_NODISCARD bool is_running(const state_info &info) noexcept
检查进程是否正在运行
static bool terminate(const state_info &info) noexcept
终止进程
static NEFORCE_NODISCARD state_info create(const string &executable, const vector< string > &args={}, bool capture_output=false)
创建新进程
static bool suspend(const state_info &info) noexcept
挂起进程
static NEFORCE_NODISCARD memory_info get_memory_info(const state_info &info)
获取进程内存信息
static NEFORCE_NODISCARD string name(native_id_type process_id)
根据进程ID获取进程名称
static NEFORCE_NODISCARD native_id_type current_id() noexcept
获取当前进程ID
static NEFORCE_NODISCARD state get_state(const state_info &info)
获取进程状态
static int wait_for(state_info &info, int timeout_ms=-1)
等待进程结束
static NEFORCE_NODISCARD bool check_permission(const state_info &info, permission permission)
检查进程权限
unsigned long long uint64_t
64位无符号整数类型
exception(const char *info=static_type, const char *type=static_type, const int code=0)
构造函数
NEFORCE_NODISCARD int code() const noexcept
获取异常码
NEFORCE_NODISCARD const char * type() const noexcept
获取异常类型
size_t peak_pagefile_usage
页面文件使用峰值
size_t working_set_size
当前工作集大小
size_t peak_working_set_size
峰值工作集大小
size_t pagefile_usage
页面文件使用量
string stdout_output
捕获的标准输出内容
native_id_type process_id
进程ID
uint64_t wall_time_ms
墙上时间(毫秒)
uint64_t user_time_ms
用户态时间(毫秒)
uint64_t kernel_time_ms
内核态时间(毫秒)