| /* fsync.c - Synchronize a file's in-core state with storage device. |
| * |
| * Copyright 2015 Ranjan Kumar <ranjankumar.bth@gmail.comi> |
| * |
| * No Standard. |
| |
| USE_FSYNC(NEWTOY(fsync, "<1d", TOYFLAG_BIN)) |
| |
| config FSYNC |
| bool "fsync" |
| default y |
| help |
| usage: fsync [-d] [FILE...] |
| |
| Synchronize a file's in-core state with storage device. |
| |
| -d Avoid syncing metadata |
| */ |
| |
| #define FOR_fsync |
| #include "toys.h" |
| |
| static void do_fsync(int fd, char *name) |
| { |
| if (((toys.optflags & FLAG_d) ? fdatasync(fd) : fsync(fd))) |
| perror_msg("can't sync '%s'", name); |
| } |
| |
| void fsync_main(void) |
| { |
| loopfiles_rw(toys.optargs, O_RDONLY|O_NOATIME|O_NOCTTY|O_CLOEXEC|WARN_ONLY, |
| 0, do_fsync); |
| } |