标签: asprintf

为什么使用asprintf()而不是sprintf()?

我很难理解你为什么需要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*=(字符串),那有什么区别

c printf gnu asprintf

48
推荐指数
2
解决办法
5万
查看次数

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

我正在尝试在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,这将是很高兴有一个解决方法.

c aix printf asprintf

12
推荐指数
2
解决办法
2816
查看次数

sprintf 的最佳实践?

情况是这样的:

我们从外部源收到了使用 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。

感谢您的帮助。

c standards pointers restrict-qualifier asprintf

9
推荐指数
1
解决办法
444
查看次数

`asprintf`线程安全吗?

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在并发线程中调用了怎么办?没有坏事会发生,他们会吗?

c printf multithreading glibc asprintf

6
推荐指数
1
解决办法
355
查看次数

在Windows上使用asprintf()

我编写了一个在linux上运行完美的C程序,但是当我在windows上编译它时,它给出了一个错误,说asprintf()是未定义的.它应该是stdio库的一部分,但似乎许多编译器不包含它.哪个编译器可以用于windows,这将允许我使用asprintf()函数?我已经尝试了多个编译器,到目前为止似乎都没有定义它.

c windows asprintf

5
推荐指数
4
解决办法
6278
查看次数

php sprintf HTML模板

我有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)

html php file-get-contents asprintf

1
推荐指数
1
解决办法
975
查看次数