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