#include #include #include #include #include #include using namespace std; void ReverseFile(char *fromFile, char *toFile) { int fromFd = open(fromFile, O_RDONLY); if (fromFd < 0) { cerr << "Error opening " << fromFile << "\n"; return; } int toFd = creat(toFile, 0666); if (toFd < 0) { cerr << "Error opening " << toFile << "\n"; close(fromFd); return; } lseek(fromFd, (off_t)(-1), SEEK_END); while(1) { char ch; int n = read(fromFd, &ch, 1); n = write(toFd, &ch, 1); if (n < 0) {cerr << "Error\n"; exit(0);} if (lseek(fromFd, (off_t)(-2), SEEK_CUR) < 0) break; } close(toFd); close(fromFd); } main(int argc, char * argv[]) { if (argc != 3) { cerr << "Usage: a.out srcfile dstfile\n"; exit(1); } ReverseFile(argv[1], argv[2]); }