用 snprintf / asprintf 取代不安全的 sprintf
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用 snprintf / asprintf 取代不安全的 sprintf,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含829字,纯文字阅读大概需要2分钟。
内容图文
摘自:https://blog.csdn.net/yhtoo/article/details/46943727
asprintf 第一个参数是指向指针的指针,它会在heap中自动申请空间(最后要手动free)。使用asprintf ,要加上 #define _GNU_SOURCE
int asprintf(char **strp, constchar *fmt, ...); int vasprintf(char **strp, constchar *fmt, va_list ap); 描述 函数 asprintf()和 vasprintf()是 sprintf(3)和 vsprintf(3)的对等物,除了它们分配一个包括结尾空字符在内的足够大的输出内存,并且通过其第一个参数返回。这个指针应该传给 free(3)以在不再使用时释放它。 返回值 当成功时,如同 sprintf(3)一样,这些函数返回打印的字节个数。如果内存分配失败,或者其它错误发生了,这些函数返回 -1,并且 strp 的内容是未定义的。
#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <stdio.h> // int asprintf(char **strp, const char *fmt, ...);int main(int argc, char *argv[]) { char *c = NULL; t = asprintf(&c, "%s:%d", "abc", 123); if (t == -1) { printf("error occor"); } free(c); return; }
原文:https://www.cnblogs.com/LiuYanYGZ/p/14201161.html
内容总结
以上是互联网集市为您收集整理的用 snprintf / asprintf 取代不安全的 sprintf全部内容,希望文章能够帮你解决用 snprintf / asprintf 取代不安全的 sprintf所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。