我正在尝试编写一个可以反转文件内容的程序。因此,给输入文件的内容为“abc”,它应该创建一个内容为“cba”的文件。
不幸的是,它不起作用,我不明白为什么。
你们能帮帮我吗?谢谢
编辑:我忘了提到这是一项学校作业 - 我们必须使用像 lseek 和 open 这样的功能 - 请不要让我认为我应该使用 fgetc 和其他功能 :)
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
void reverse_file(char * in, char * out)
{
int infile, outfile;
infile = open(in, O_RDONLY);
outfile = open(out, O_WRONLY);
char buffer;
char end = EOF;
write(outfile, &end, sizeof(char));
do
{
// seek to the beginning of a file
read(infile, &buffer, sizeof(char));
// printf("the code of a character %d\n", buffer); // returns 10 instead of EOF
lseek(outfile, 0, SEEK_SET);
write(outfile, &buffer, sizeof(char));
} while (buffer != EOF);
close(outfile);
close(infile);
}
int main()
{
reverse_file("tt", "testoutput");
return 0;
}