c – 更好的冲刺?
|
我对C很新.最近我一直致力于通过套接字,MQSeries和其他途径从一堆其他系统获取输入的系统.基本上我的工作是将这些不同的源集合在一起,并将它们放入一种类似于本地的XML格式,并将它们存储在适当的数据库中,或者将它们传递给其他系统.因此,我一直在创建格式化字符串.非常简化他们看起来像这样:
所以我开始使用sprintf和vsprintf,并且很容易编写一个例程来连接sprintf的格式字符串,但问题是我没有关于我收到的字符串长度的高级知识所以很难知道它的大小要分配的缓冲区.我得到的字符串可以是25个字节长或250k字节.不说.所以我当然要过一次或两次缓冲.这导致我使用snprintf,这是好的,但只是将负载传递给我,以便在它们被截断时重新分配缓冲区并再次尝试. 所以我知道这不是宇宙中最大的问题,我可以自己加总长度,但有没有办法让它在C中更容易一些,或者我应该停止抱怨并找出某种递归函数来添加提前完成所有字符串长度? 最佳答案 就像许多事情一样,有人在你发牢骚之前然后划伤了痒. asprintf and vasprintf来救援.他们并没有比sprintf做更多的事情,但他们确实做了困扰你的事情,即弄清楚需要多少空间然后分配它,格式化字符串,并将其传递给你.几点需要注意: >如果出现问题,他们将返回-1,如果没有则返回字符串的长度 一个半荒谬的例子: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Cannot find autoconf. Please check your autoconf instal
- Linux中的atomic_t
- linux – 为什么xargs -L产生正确的格式,而xargs -n不能?
- linux – 绑定到小于1024的端口,无root访问权限
- linux – 使用rsync的归档标志而不复制符号链接
- Linux服务器性能监控
- sudo – 如何在不使用root的情况下运行supervisord?
- LINUX入门:JBoss7.1.1远程无法访问
- linux – sed:如何删除匹配包含正斜杠的模式的行?
- linux – stty:标准输入:使用pdsh或ssh时参数无效
