sprintf是什么

小白 QA 2020-04-13 13:19:48 阅读(...)

sprintf是字符串格式化命令,把格式化的数据写入某个字符串中,即发送格式化输出到string所指向的字符串。sprintf是个变参函数。使用sprintf对于写入buffer的字符数是没有限制的,存在buffer溢出可能性。

sprintf 指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,…]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用 sprintf 对于写入 buffer 的字符数是没有限制的,这就存在了 buffer 溢出的可能性。解决这个问题,可以考虑使用 snprintf 函数,该函数可对写入字符数做出限制。

sprintf是什么

sprintf 函数语法

函数声明

int sprintf(char *string, char *format [,argument,…]);

参数列表

string– 这是指向一个字符数组的指针,该数组存储了 C 字符串。

format– 这是字符串,包含了要被写入到字符串 str 的文本。它可以包含嵌入的 format 标签,format 标签可被随后的附加参数中指定的值替换,并按需求进行格式化。format 标签属性是%[flags][width][.precision][length]specifier

功能

把格式化的数据写入某个字符串缓冲区。

返回值

如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。

sprintf 返回以 format 为格式 argument 为内容组成的结果被写入 string 的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的 string 后,函数 sprintf 返回 5。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • libressl

    LibreSSL是什么

    LibreSSL是OpenSSL加密软件库的分支,是一个安全套接层和传输层安全协议的开源实现。在OpenSSL爆出心脏出血安全漏洞之后创立了LibreSSL,重构OpenSSL代码,以提供一个更安全的替代品。
  • 内存溢出是什么

    内存溢出是什么

    内存溢出(OOM)是指应用系统中存在无法回收的内存或使用的内存过多,使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件。
  • 全自动洗衣机 Fully automatic washing machine

    全自动洗衣机有什么好处

    全自动洗衣机相比普通洗衣机对衣服的磨损很少;外形美观,更加精巧、紧凑,不但占用空间小;使用寿命可以达到15年;采用了控制水量大小的节水技术,加热洗技术以及雨淋、浸泡、摔打三重洗涤、三维立体式水流等模式和防水溢出功能,能节约用水。
  • 冰箱清理 Refrigerator cleaning

    冰箱疏通后不抽水可以吗

    冰箱疏通后水不抽可以,但需要看疏通后残留下来的水是多还是少。若残留的水很多的话,则需要抽出来,否则水就会从接水盒中溢出来。
  • 冰箱格子

    冰箱漏水如何处理

    冰箱长时间不进行清洁保养,那么冰箱接水盘内的水就会慢,溢出流到地面是非常常见的问题,所以大家要不定期的清洁冰箱,不要让接水盘水流出。
  • 代理 Proxy

    PAC是什么

    代理自动配置(Proxy Auto Config),简称PAC。PAC文件是一个包含JavaScript形式的函数。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理器或者直接访问。