https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=af8a7c13b516c77c1e6092157e23ca26db44b1af commit af8a7c13b516c77c1e6092157e23ca26db44b1af Author: Takashi Yano <takashi.yano@nifty.ne.jp> Date: Sat Mar 12 06:19:53 2022 +0900 Cygwin: fsync: Return EINVAL for special files. - Unlike linux, fsync() calls FlushFileBuffers() even for special files. This causes the problem reported in: https://cygwin.com/pipermail/cygwin/2022-March/251022.html This patch fixes the issue. Diff: --- winsup/cygwin/fhandler.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 98d7a3b2d..fc7bf0a0e 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -1750,7 +1750,7 @@ fhandler_base::utimens (const struct timespec *tvp) int fhandler_base::fsync () { - if (!get_handle () || nohandle ()) + if (!get_handle () || nohandle () || pc.isspecial ()) { set_errno (EINVAL); return -1;