0
我正在读取文件并将所有内容保存在名为buff
的变量中。如果我使用printf打印出buff
,它会打印出一切正常。我试过将result
与其他字符串/字符串变量连接起来,它工作得很好。但只要我strcat/strncat buff
与result
,它进入一个永无止境的循环(它不打印任何东西,程序永远不会结束)。我不知道为什么。从文件中读取strcat中的一个变量C
read(fd[0], buff, 1000);
strcat(result, buff);
我已经试过这是很好,但没有运气
int n = read(fd[0], buff, 1000);
strncat(result, buff, n);
而这样一来,
read(fd[0], buff, 1000);
strncat(result, buff, sizeof(buff));
strncat的第一个参数是目标缓冲区,所以第三个参数应该从它的大小而不是源的大小派生(如你在第三个例子中所做的那样)。 – itdoesntwork
我曾尝试将缓冲区大小作为第三个参数。它仍然不起作用。它进入一个永无止境的循环。它不会打印任何内容,程序也不会完成。 –
我们可以看到C源代码的更完整示例,比如说您在哪里以及如何声明结果? – slevy1