only call fsync() on disk files, otherwise we get an error for pipes under Unix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -334,17 +334,18 @@ size_t wxFile::Write(const void *pBuf, size_t nCount)
|
|||||||
// flush
|
// flush
|
||||||
bool wxFile::Flush()
|
bool wxFile::Flush()
|
||||||
{
|
{
|
||||||
if ( IsOpened() ) {
|
|
||||||
#if defined(__VISUALC__) || defined(HAVE_FSYNC)
|
#if defined(__VISUALC__) || defined(HAVE_FSYNC)
|
||||||
|
// fsync() only works on disk files and returns errors for pipes, don't
|
||||||
|
// call it then
|
||||||
|
if ( IsOpened() && GetKind() == wxFILE_KIND_DISK )
|
||||||
|
{
|
||||||
if ( wxFsync(m_fd) == -1 )
|
if ( wxFsync(m_fd) == -1 )
|
||||||
{
|
{
|
||||||
wxLogSysError(_("can't flush file descriptor %d"), m_fd);
|
wxLogSysError(_("can't flush file descriptor %d"), m_fd);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#else // no fsync
|
|
||||||
// just do nothing
|
|
||||||
#endif // fsync
|
|
||||||
}
|
}
|
||||||
|
#endif // fsync
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user