2

我想将进程 pid 转换为 const char* 但下面不起作用:

            std::ostringstream str_pid;
        str_pid << getpid();
        const char * cstr_pid = str_pid.str().c_str();

它大部分时间都有效,但有时它会产生错误的结果。显然我做错了什么。任何想法?

4

1 回答 1

5

cstr_pidstd::string将是一个悬空指针,因为str_pid.str()在分配cstr_pid. 创建str_pid.str()返回值的副本:

const std::string my_pid(str_pid.str());

然后在需要my_pid.c_str()const char*使用。

于 2012-07-19T14:57:48.120 回答