`CreateProcess` 函数可以用于创建一个独立的进程。为了确保新进程不是作为当前进程的子进程创建的,您需要将 `bInheritHandles` 参数设置为 `FALSE` 并提供一个独立的进程空间。以下是创建独立进程的示例代码:
#include
#include
int main() {
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
// 创建独立的进程
BOOL success = CreateProcess(
nullptr, // 模块名(可执行文件路径)
const_cast("command"), // 命令行参数
nullptr, // 进程句柄不可继承
nullptr, // 线程句柄不可继承
FALSE, // 不继承句柄
CREATE_NEW_PROCESS_GROUP | // 创建一个新的进程组
CREATE_UNICODE_ENVIRONMENT, // 使用Unicode环境变量
nullptr, // 使用父进程环境变量
nullptr, // 使用父进程工作目录
&si, // 启动信息
&pi // 进程信息
);
if (success) {
std::cout << "Independent process created." << std::endl;
// 关闭不再使用的句柄
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
} else {
std::cerr << "Failed to create independent process." << std::endl;
}
return 0;
}
在上述示例中,我们将 `bInheritHandles` 参数设置为 `FALSE` 并使用 `CREATE_NEW_PROCESS_GROUP` 标志创建了一个新的进程组。这样可以确保新进程是独立于当前进程的。
注意:`command` 参数应替换为您实际要执行的可执行文件路径或命令行参数。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:C语言中怎么用CreateProcess函数创建独立的进程