そこで、大学のスニペットから C ファイルの IO 操作を学ぼうとしています。私の問題は、SEEK_END
期待どおりに機能しないことです。
詳細については、お会いしましょう。
入力.txt:
abcd-abcd-abcd
コード:
int fd, fdr, l1, l2, wb1, wb2;
char buf[25];
fd = open("input.txt", O_WRONLY);
fdr = open("input.txt", O_RDONLY);
l1 = lseek(fd, -3, SEEK_END);
wb1 = write(fd, "xy", 2);
l2 = lseek(fd, 4, SEEK_SET);
write(fd, "12", 2);
lseek(fdr, 0, SEEK_SET);
wb2 = read(fdr, buf, 20);
write(1, buf, wb2);
私の問題は「xy」を書くことです。出力が
abcd12bcd-axyd
代わりに
abcd12bcd-abcd
「xy」が書かれていないのはなぜですか?