gpt4 book ai didi

c - 如何将 pid_t 转换为字符串

转载 作者:太空狗 更新时间:2023-10-29 15:24:35 37 4
gpt4 key购买 nike

所以,我需要将 pid strcat 到某个字符串。我有这个

strcat (str,(char*)getpid());

但这行不通。

----编辑----

好的,我理解反对票。我太快发布问题了。并没有意识到 pid 返回一个 int,我不能将 int 转换为 char*

itoa 不工作,因为它不是标准的 c。

我就是这样做的。

char pid[10];
snprintf(pid, 10,"%d",(int)getpid());
strcat (str, pid);

最佳答案

与其使用 strcat 构建字符串,不如考虑使用更灵活(更高效!)sprintf/snprintf 函数:

char *end = str;
end += sprintf(end, "%s ", "hello!");
end += sprintf(end, "%ld", (long)getpid());
if(bar)
end += sprintf(end, "%x", 0xf00d);

观察 sprintf 返回写入的字符数,因此您可以构建一个字符串而不会屈服于 Schlemiel the Painter's algorithm .如果你想确保你不会溢出固定大小的缓冲区,snprintf 会为你做这件事(strcat 只会盲目地连接,没有标准的方法以避免这种情况)。

请注意 pid_t standard保证存在“一个或多个编程环境,其中 pid_t... 的 [width] 不大于 long 类型的宽度”。因此,只要 getconf 这么说,将 pid_t 转换为 long 就是安全的。

关于c - 如何将 pid_t 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15262315/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com