我正在构建一个分布式消息传递系统,供用户在不同的linux终端上相互发送消息。我正在寻找我的问题的场景是当我尝试将字符串写入超过4095字节/字符的文本文件时。该字符串将从用户输入生成。我已经读过最大字符串大小的ISO C99标准是4095字节/字符。我应该限制用户只输入小于4095字节的字符串吗?我知道简单的聊天消息通常很短,但我关注的情况如下。
用户尝试从某处复制并粘贴摘录,然后将其发送给其他用户。如果消息长于4095字节,则会在第4095个字符后截断字符。因此,用户只会收到第一部分。
我不确定这一点,但我想知道如果字符串长度超过4095个字符,我应该采取增加堆栈大小的路径,或者是否有另一种方式通过某种方式分割字符串,因为我接受它然后逐个地将多个字符串写入文件。
答案 0 :(得分:10)
这个限制是关于字符串文字,比如"hello world"
。这不是您以编程方式构造的字符串的一般限制。你可以创建更多,大于4095字节的字符串!
答案 1 :(得分:1)
使用所谓的“缓冲区”并一次写入4095个字节。我不是C程序员,所以我现在想不起缓冲输出函数,但它存在。