问题标签 [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.
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 的软件,它会是很高兴有一个解决方法。
c - 为什么使用 asprintf() 而不是 sprintf()?
我很难理解你为什么需要 asprintf。在手册中它说
函数
asprintf()
andvasprintf()
是 and 的类似物sprintf(3)
,vsprintf(3)
除了它们分配一个足够大的字符串来保存包括终止空字节在内的输出,并通过第一个参数返回一个指向它的指针。free(3)
当不再需要时,应该传递该指针 以释放分配的存储空间。
所以这是我试图理解的例子:
如果缓冲区分配足够大的字符串与说 char* = (string) 有什么区别
c - `asprintf` 是线程安全的吗?
GNU 函数asprintf
(打印到分配的字符串)是线程安全的吗?
(IIC,基本上,这归结为是否malloc
是线程安全的问题。)
考虑示例代码:
在这里,我没有触及任何全局变量。如果我getValue
在并发线程中被调用怎么办?不会有坏事发生吧?
c - 在 C 上使用 sprintf 和系统函数时的空文件
我想在文件文本中保存一些信息,我写了这个程序:
结果:
系统命令返回:
但是当我运行时: cat /tmp/ping_result.I 有一个空文件
c - 在 Windows 上使用 asprintf()
我编写了一个在 linux 上完美运行的 C 程序,但是当我在 windows 上编译它时,它给了我一个错误,说 asprintf() 是未定义的。它应该是 stdio 库的一部分,但似乎许多编译器不包含它。我可以将哪个编译器用于允许我使用 asprintf() 函数的 Windows?我已经尝试了多个编译器,但到目前为止似乎没有一个定义它。
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() 打印出结果时,字符串会按预期附加,谢谢。
c - 当 sprintf 使用成本太高时,在 C 中将 int 转换为 char*
我需要将int
值转换为char
字符串,我使用了以下函数,其中 score 的类型为int
。
这似乎可行,除了这段代码是一个更大的系统的一部分,我在一个可用内存空间有限的微控制器 (MSP430) 上编写视频游戏。我可以在我的游戏死机和崩溃之前更新一次分数。
出于某种原因,每当我添加sprintf()
函数(或其他类似函数,如snprintf
, 或asprintf
)时,它都会占用 MCU 上的大量可用内存。
使用sprintf
它编译的函数为11407 字节。如果我注释掉那一行,我的代码编译为4714 字节
我对转换int
为char
字符串不太熟悉,但是,我认为它不应该消耗那么多内存。任何指导将不胜感激。
php - php sprintf HTML 模板
我有 html 邮件模板,我想通过 php mail() 函数发送给我的用户。
我正在将此模板放入 php 变量中,并希望使用 sprintf() 函数将指定的变量插入到该变量中,但我得到了这个-
警告:sprintf():参数太少
在我的 html 模板中
%s 仅在第 260 行
和我的 php 代码
c - 显示使用 asprintf 创建的时间字符串
我想以这种形式显示一个字符串:"in 3 days 00:15:07" or "in 00:15:07" in case days is 0
所以我写了一些代码如下
我在控制台中得到这个输出:
我不知道为什么创建的带有 asprintf 的字符串(第一个显示消息)会以这种方式显示。我希望它像第二条显示消息的结果。
有谁知道我哪里出错了?