include: add close_fd() for noticing write errors before close()
Essentially this helper function is similar to close_stream(), but for file descriptors. When a file descriptors are close()'d status of write is often overlooked. The close_fd() will try to determine what happen to writes with fsync() before closing the file descriptor. Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
8d21d9ab8f
commit
f416563b28
|
@ -48,4 +48,23 @@ close_stdout(void)
|
|||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
#ifndef HAVE_FSYNC
|
||||
static inline int
|
||||
fsync(int fd __attribute__((__unused__)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
close_fd(int fd)
|
||||
{
|
||||
const int fsync_fail = (fsync(fd) != 0);
|
||||
const int close_fail = (close(fd) != 0);
|
||||
|
||||
if (fsync_fail || close_fail)
|
||||
return EOF;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* UTIL_LINUX_CLOSESTREAM_H */
|
||||
|
|
Loading…
Reference in New Issue