首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C++中获取后台shell命令的PID

在C++中获取后台shell命令的PID可以使用popen函数和pclose函数来实现。popen函数可以执行一个shell命令,并返回一个文件指针,通过该文件指针可以读取命令的输出。而pclose函数可以关闭文件指针,并返回命令的退出状态。

下面是一个示例代码:

代码语言:txt
复制
#include <iostream>
#include <cstdio>
#include <cstring>

int main() {
    FILE* pipe = popen("your_shell_command & echo $!", "r");
    if (!pipe) {
        std::cerr << "Error executing shell command" << std::endl;
        return -1;
    }

    char buffer[128];
    std::string result = "";
    while (!feof(pipe)) {
        if (fgets(buffer, 128, pipe) != NULL)
            result += buffer;
    }

    pclose(pipe);

    // 提取PID
    size_t pos = result.find_first_of("\n");
    std::string pid = result.substr(0, pos);

    std::cout << "PID: " << pid << std::endl;

    return 0;
}

上述代码中,your_shell_command是你要执行的后台shell命令。&符号用于将命令放到后台执行。echo $!用于输出命令的PID。

这段代码使用popen函数执行shell命令,并通过循环读取命令的输出,将输出保存在result字符串中。然后使用pclose函数关闭文件指针。

最后,使用find_first_of函数和substr函数提取PID,并输出到控制台。

请注意,这只是一个示例代码,实际使用时需要根据具体情况进行修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

4分11秒

05、mysql系列之命令、快捷窗口的使用

2分3秒

小白教程:如何在Photoshop中制作真实的水波纹效果?

2分25秒

090.sync.Map的Swap方法

53秒

动态环境下机器人运动规划与控制有移动障碍物的无人机动画2

12分26秒

AJAX教程-01-全局刷新和局部刷新【动力节点】

10分57秒

AJAX教程-04-ajax概念

9分48秒

AJAX教程-06-创建异步对象的步骤第二部分

7分14秒

AJAX教程-08-全局刷新计算bmi创建页面

3分4秒

AJAX教程-10-全局刷新计算bmi创建servlet

9分25秒

AJAX教程-12-ajax计算bmi创建异步对象

9分12秒

AJAX教程-14-ajax计算bmi接收数据

6分33秒

AJAX教程-16-ajax第二个例子创建库和表数据

领券