在确定性上积累,在不确定性上低成本试错!|

FreeCheng

园龄:3年9个月粉丝:0关注:1

printf, fprintf, sprintf, vsprintf, snprintf, vsnprintf之间的用法和区别

1、printf是打印格式化字符串,返回值是成功打印的字符数;

int printf(const char *format, ...)

 

2、fprintf是将格式化数据写入到指定文件流中;

int fprintf(FILE *stream, const char *format, ...)

 

3、sprintf是将格式化的数据写入到指定字符串;

int sprintf(char *str, const char *format, ...)

 

4、vsprintf与sprintf类似,不同之处在于它使用可变参数列表(va_list)来传递参数,而不是通过参数列表中的省略号...来传递。

int vsprintf (char * str, const char * format, va_list arg);

 

5、snprintf与sprintf类似,但在此基础上加入了写入最大字符数目n的限制,可以防止缓冲区溢出的安全漏洞,更加安全。

int snprintf(char *str, size_t size, const char *format, ...)

 

6、vsnprint也是与vsprintf类似,在其基础上加入了下入最大字符数目n的限制,更加安全。函数的返回值是实际尝试写入的字符数(不包括结尾的空字符),如果未能完全写入,则返回值等于n。

int vsnprintf (char * s, size_t n, const char * format, va_list args)

本文作者:FreeCheng

本文链接:https://www.cnblogs.com/freecheng/p/17913763.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   FreeCheng  阅读(309)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起