[英]convert pid_t to const char* with stringstream
我想将进程pid转换为const char *,但以下方法不起作用:
std::ostringstream str_pid;
str_pid << getpid();
const char * cstr_pid = str_pid.str().c_str();
它在大多数情况下都有效,但有时会产生错误的结果。 显然我在做错事。 任何想法?
cstr_pid
将是一个悬空指针,因为分配了cstr_pid
之后, str_pid.str()
返回的临时std::string
被破坏。 创建str_pid.str()
返回值的副本:
const std::string my_pid(str_pid.str());
然后在需要const char*
时使用my_pid.c_str()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.