0
我有一個簡單的打開和寫入奇怪的結果。我會引用該程序,然後我會解釋我的結果:寫在文件中產生奇怪的結果
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main(){
int fd = open("hello.txt", O_WRONLY|O_CREAT, 0700);
char buf[] = "Hello world\n";
int i=0;
for(i = 0; i < 10;i++){
write(1,buf,sizeof(buf));
write(fd, buf, sizeof(buf));
}
close(fd);
return 0;
}
使用此代碼,在終端輸出將是世界,你好十倍預期......但在文件hello.txt的我得到這個:
效汬潷汲䠀汥潬眠牯摬
效汬潷汲䠀汥潬眠牯摬
效汬潷汲䠀汥潬眠牯摬
效汬潷汲䠀汥潬眠牯摬
效汬潷汲䠀汥潬眠牯摬
1)爲什麼會發生這種情況?我做錯了什麼?爲什麼是中國人? 在此先感謝
編輯:使用gcc 4.8.1與-Wall標誌進行編譯:沒有警告
我編譯並運行它時沒有遇到這個錯誤。 – squiguy
適合我。你可能想檢查你的終端設置。 – Asblarf
你打電話給'open'後檢查過fd!= -1嗎? –