1
我想將一些數據插入到文件的中間。我在追加模式打開的文件爲:以追加模式打開文件時,如何重新定位文件指針?
file = fopen(msg->header.filename, "ab");
然後我嘗試了尋求到文件,以便在所需的偏移:
fseek(file, msg->header.offset, SEEK_SET);
然而,當我再嘗試一個FWRITE像這樣:
int bytesWritten = fwrite(msg->message, 1, msg->header.length, file);
將所有數據寫入文件的末尾而不是在文件的中間。
這是因爲我使用追加模式?我會以寫入模式打開,但我需要保留文件中的現有內容。
啊,我認爲這意味着光標會在最後開始。沒有意識到它會抵制移動。 – samoz 2010-10-27 20:14:05
是的。如果你只想在最後開始,你需要在update('rb +')模式下打開它並調用'fseek(f,0,SEEK_END);'。 – 2010-10-27 20:52:16