Hi,

I am aware this isn't a programming mailing list, but since I've got
such wonderful responses from users in this ML, I thought I'd go ahead
with my post.

My problem is that I haven't figured out how I must fsync an output
stream (in C++) even after reading the contents of this link:
http://gcc.gnu.org/ml/gcc-help/2004-02/msg00285.html

How must I modify this method (this method doesn't work; it prints the
error message and exits!) ?

void logRecovery::syncToDisk(fstream& f)
{
    unix_filebuf_t* buf;
    buf = dynamic_cast<unix_filebuf_t*>(f.rdbuf());
    if (buf == NULL) {
        cerr << "Fatal: Don't know fd of stream" << endl;
        exit(-1);
    }

    fsync(buf->fd());
}

I am using GCC 3.3.4.

Thanks,

Hareesh
--
[email protected] mailing list

Reply via email to