问题标签 [asprintf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3176 浏览

c - 在 AIX 上替换 asprintf 或解决方法

我正在尝试在 AIX 上构建 python-kerberos。kerberospw.c 使用对 asprintf 的调用,但从 Google 告诉我的内容来看,AIX 上不存在 asprintf。

我看到http://www.koders.com/c/fidAA9B130D588302673A28B568430A83131B7734C0.aspx?s=windows.h,看起来我可以创建一个替代 asprintf,但我不知道这会去哪里或我会如何#将其包含在 kerberospw.c 中。

有没有办法可以使用 koders.com 示例或其他代码来“伪造”asprintf?我可以只包含 kerberospw.c 中所示的 asprintf 函数吗?我不是 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 的软件,它会是很高兴有一个解决方法。

0 投票
2 回答
66826 浏览

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

我很难理解你为什么需要 asprintf。在手册中它说

函数asprintf()andvasprintf()是 and 的类似物sprintf(3)vsprintf(3)除了它们分配一个足够大的字符串来保存包括终止空字节在内的输出,并通过第一个参数返回一个指向它的指针。free(3)当不再需要时,应该传递该指针 以释放分配的存储空间。

所以这是我试图理解的例子:

如果缓冲区分配足够大的字符串与说 char* = (string) 有什么区别

0 投票
2 回答
556 浏览

c - `asprintf` 是线程安全的吗?

GNU 函数asprintf(打印到分配的字符串)是线程安全的吗?

(IIC,基本上,这归结为是否malloc是线程安全的问题。)

考虑示例代码:

在这里,我没有触及任何全局变量。如果我getValue在并发线程中被调用怎么办?不会有坏事发生吧?

0 投票
2 回答
613 浏览

c - 在 C 上使用 sprintf 和系统函数时的空文件

我想在文件文本中保存一些信息,我写了这个程序:

结果:

系统命令返回:

但是当我运行时: cat /tmp/ping_result.I 有一个空文件

0 投票
8 回答
12336 浏览

c - 在 Windows 上使用 asprintf()

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

0 投票
2 回答
799 浏览

c - asprintf - 如何在 C 中获取字符串输入

我正在阅读“21 世纪 C”(第一版)一书,并找到了一个有趣的程序,它使用 asprintf 来获取字符串,而无需使用 malloc /size of 来获取字符串长度或空间分配。请阅读同一本书中的附图以了解上下文。以下程序也来自书中。程序编译运行,而不是从键盘输入字符串,而是得到以下消息。问题是:为什么程序不从 keboard 获取字符串输入,而是显示长(不寻常)错误消息?

运行程序时输出为:

在此处输入图像描述

0 投票
1 回答
4970 浏览

c - 使用 valgrind 时读取大小为 1 的无效

我在使用 valgrind 时得到这个输出:

这是我将其缩小为代码中的问题的地方:

我有很多错误,我觉得提供整个 valgrind 输出会有点矫枉过正。我遇到的所有错误都会回到我使用 asprintf() 的地方("addToList (pa1.c:124)" line in the report)。在我初始化的代码上方char *buff = NULL;,并currentList->value保存一个我想使用 asprintf 附加到的字符串。任何关于我为什么会收到大量 Invalid read size 1 错误的猜测都将不胜感激。此外,当我从 asprintf() 打印出结果时,字符串会按预期附加,谢谢。

0 投票
4 回答
885 浏览

c - 当 sprintf 使用成本太高时,在 C 中将 int 转换为 char*

我需要将int值转换为char字符串,我使用了以下函数,其中 score 的类型为int

这似乎可行,除了这段代码是一个更大的系统的一部分,我在一个可用内存空间有限的微控制器 (MSP430) 上编写视频游戏。我可以在我的游戏死机和崩溃之前更新一次分数。

出于某种原因,每当我添加sprintf()函数(或其他类似函数,如snprintf, 或asprintf)时,它都会占用 MCU 上的大量可用内存。

使用sprintf它编译的函数为11407 字节。如果我注释掉那一行,我的代码编译为4714 字节

我对转换intchar字符串不太熟悉,但是,我认为它不应该消耗那么多内存。任何指导将不胜感激。

0 投票
4 回答
2059 浏览

php - php sprintf HTML 模板

我有 html 邮件模板,我想通过 php mail() 函数发送给我的用户。

我正在将此模板放入 php 变量中,并希望使用 sprintf() 函数将指定的变量插入到该变量中,但我得到了这个-

警告:sprintf():参数太少

在我的 html 模板中

%s 仅在第 260 行

和我的 php 代码

0 投票
1 回答
91 浏览

c - 显示使用 asprintf 创建的时间字符串

我想以这种形式显示一个字符串:"in 3 days 00:15:07" or "in 00:15:07" in case days is 0

所以我写了一些代码如下

我在控制台中得到这个输出:

我不知道为什么创建的带有 asprintf 的字符串(第一个显示消息)会以这种方式显示。我希望它像第二条显示消息的结果。

有谁知道我哪里出错了?