我很难理解你为什么需要asprintf.它在手册中说
的功能
asprintf()和vasprintf()是的类似物sprintf(3)和vsprintf(3),除了它们分配一个字符串足够大以容纳包括终止空字节的输出,并且经由第一个参数的指针返回到它.应该传递此指针free(3)以在不再需要时释放已分配的存储.
所以这是我试图理解的例子:
asprintf(&buffer, "/bin/echo %s is cool", getenv("USER"));
Run Code Online (Sandbox Code Playgroud)
如果缓冲区分配足够大的字符串而不是说char*=(字符串),那有什么区别
我正在尝试在AIX上构建python-kerberos.kerberospw.c使用了对asprintf的调用,但是从谷歌告诉我的是,asprintf在AIX上不存在.
我看到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(消息"%*S:%*S",(int)的result_code_string.length,
(字符*)result_code_string.data,
(INT)result_string.length,
(字符*)result_string.data);
我知道我可以联系上python-的Kerberos的作者,但)我认为这将是有帮助的潜在的补丁,如果我这样做,和b)有可能是其他的软件我碰到运行使用asprintf,这将是很高兴有一个解决方法.
情况是这样的:
我们从外部源收到了使用 sprintf(如 strcat)的代码。像这样:
char buffer[1024];
sprintf(buffer, "Some text.");
sprintf(buffer, "%s%s", buffer, "Some more text");
sprintf(buffer, "%s%s", buffer, "again more text");
Run Code Online (Sandbox Code Playgroud)
现在,这看起来很奇怪。我们都同意这看起来很奇怪。我要问的不是这个。我们都知道应该用strcat,而且更直接。我问的是除了看起来很奇怪之外,这可能导致的潜在问题。我们在 RHEL6 上运行,并使用 gcc 4.9.3。
感谢您的帮助。
GNU函数asprintf(打印到分配的字符串)是否是线程安全的?
(IIC,基本上,这归结为是否malloc是线程安全的问题.)
考虑示例代码:
#define _GNU_SOURCE
#include <stdio.h>
#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;
}
Run Code Online (Sandbox Code Playgroud)
在这里,我不触及任何全局变量.如果我getValue在并发线程中调用了怎么办?没有坏事会发生,他们会吗?
我编写了一个在linux上运行完美的C程序,但是当我在windows上编译它时,它给出了一个错误,说asprintf()是未定义的.它应该是stdio库的一部分,但似乎许多编译器不包含它.哪个编译器可以用于windows,这将允许我使用asprintf()函数?我已经尝试了多个编译器,到目前为止似乎都没有定义它.
我有html邮件模板,我想通过php mail()函数发送给我的用户。
我将此模板放入php变量,并希望使用sprintf()函数将其插入到指定的变量中,但是我正在获得此-
警告:sprintf():参数太少
在我的html模板中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>template</title>
<style type="text/css">
@media screen and (max-width: 600px) {
table[class="container"] {
width: 95% !important;
}
}
#outlook a {
padding: 0;
}
body {
width: 100% !important;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
margin: 0;
padding: 0;
}
.ExternalClass {
width: 100%;
}
.ExternalClass,
.ExternalClass p,
.ExternalClass span,
.ExternalClass font,
.ExternalClass td,
.ExternalClass div {
line-height: …Run Code Online (Sandbox Code Playgroud)