Tag: asprintf

`asprintf`是线程安全的吗?

GNU函数asprintf (打印到分配的字符串)线程安全吗? (IIC,基本上,这归结为malloc是否是线程安全的问题。) 考虑示例代码: #define _GNU_SOURCE #include #include “getValue.h” char * getValue(int key) { char * value; asprintf(&value, “%d”, key); // TODO: No error handling! // If memory allocation wasn’t possible, or some other error occurs, these functions will // return -1, and the contents of strp is undefined. return value; } 在这里,我不触及任何全局变量。 如果我的getValue在并发线程中被调用怎么办? 没有坏事会发生,他们会吗?

AIX上的asprintf的替代或解决方法

我正在尝试在AIX上构建python-kerberos。 kerberospw.c使用了对asprintf的调用,但是从谷歌告诉我的情况来看,AIX上不存在asprintf。 我看到http://www.koders.com/c/fidAA9B130D588302673A28B568430A83131B7734C0.aspx?s=windows.h ,看起来我可以创建一个替代asprintf,但我不知道这会发生什么,或者我会怎么做#include它在kerberospw.c中。 有没有办法可以使用koders.com示例或其他一些代码“伪造”asprintf? 我可以只包含asprintf函数,如kerberospw.c所示? 我不是C编码员,但是 asprintf(char ** resultp,const char * format,…) 用最后的圆点看起来对我来说不是一个有效的签名。 来自kerberospw.c的相关行如下 asprintf(&message,“%。* s:%。* s”,(int)result_code_string.length, (char *)result_code_string.data, (int)result_string.length, (char *)result_string.data); 我知道我可以联系python-kerberos的作者,但是a)我认为如果我这样做有一个潜在的补丁是有帮助的,并且b)我可能会运行其他使用asprintf的软件,它会是很高兴有一个解决方法。