/* 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); }