編寫一個程序,該程序打開一個現有文件,用O_APPEND標誌寫入,然後 在寫入一些數據之前尋找文件的開頭。 數據在文件中出現在哪裏?爲什麼?O_APPEND標誌和lseek
這是我的代碼:
main() {
int fd = open("test.txt", O_WRONLY | O_APPEND);
lseek(fd, 0, SEEK_SET);
write(fd, "abc", 3);
close(fd);
}
,並已試了一下,發現數據已經寫在文件的結尾,我想知道爲什麼?因爲我指示的O_APPEND標誌沒有說太簡單了,我認爲
調用'lseek'不會被忽略。這個職位很榮幸能夠閱讀,即使你沒有閱讀,它仍然保留下來,並且可以回讀。但是,在每次寫入時,位置都會移回文件的末尾。 –
您也可以通過使用'lseek(fd,0,SEEK_END)'(即不用獲取文件大小)來查找文件的末尾。 – NikitaBaksalyar