我正在爲Holberton學校進行一項練習。這是我3 hello_write代碼:爲什麼我的寫函數打印一個字符串(到stdout)會附加隨機字符輸出?
#include <unistd.h>
int main(void)
{
write(1, "Hello, C\n", 1000);
return (0);
}
這是輸出的gcc -Wall 3 hello_write.c & & ./a.out:
$ gcc -Wall 3-hello_write.c && ./a.out
Hello, C
@44v4
zRx
?HQc??h?i??i?? $
當我想輸出只是:
$ gcc -Wall 3-hello_write.c && ./a.out
Hello, C
$
我是一個初學者到C,所以我引用此文件的語法寫入功能。 http://codewiki.wikidot.com/c:system-calls:write
是否有一些上下文我可以給出爲什麼它可能會打印我的字符串後的額外字符?
我的期望是,因爲你告訴它來寫1000個字節。 – drescherjm
我認爲這可能是相關的,謝謝。我會查看如何計算我的字符串有多少個字節。 :) –
寫入函數的最後一個參數是要寫入的字符數您試圖寫入1000個字符,而只提供幾個字符。寫入嘗試寫入更多並在內存中前進。它打印任何它發現那裏 – loginn