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