テキストファイルを逆にするコードを書いています。例: abc は cba になります
私はコードをうまく書きましたが、うまくいきます。しかし、私はこの奇妙な行動に気付きました。反転した出力を入力として再度与えると、反転した入力ファイルの最後の文字がスキップされます。最初は正常に機能し、次回は文字をスキップするのはなぜですか?
コードは次のとおりです。
int main(){
int fin, fout;
char c[1];
fin = open("input.txt",O_RDONLY);
fout = open("reverse_input.txt",O_WRONLY|O_TRUNC);
lseek(fin, -2, SEEK_END);
do{
read(fin, c, 1);
write(fout,c,1);
}while(lseek(fin, -2, SEEK_CUR) >=0);
close(fin);
close(fout);
return 0;
}
ある種のEOF文字を見逃していると推測しています...