toybox/toys/other/fsync.c
<<
>>
Prefs
   1/* fsync.c - Synchronize a file's in-core state with storage device.
   2 *
   3 * Copyright 2015 Ranjan Kumar <ranjankumar.bth@gmail.comi>
   4 *
   5 * No Standard.
   6
   7USE_FSYNC(NEWTOY(fsync, "<1d", TOYFLAG_BIN))
   8
   9config FSYNC
  10  bool "fsync"
  11  default y
  12  help
  13    usage: fsync [-d] [FILE...]
  14
  15    Synchronize a file's in-core state with storage device.
  16
  17    -d  Avoid syncing metadata
  18*/
  19
  20#define FOR_fsync
  21#include "toys.h"
  22
  23static void do_fsync(int fd, char *name)
  24{
  25  if (((toys.optflags & FLAG_d) ? fdatasync(fd) : fsync(fd)))
  26    perror_msg("can't sync '%s'", name);
  27}
  28
  29void fsync_main(void)
  30{
  31  loopfiles_rw(toys.optargs, O_RDONLY|O_NOATIME|O_NOCTTY|O_CLOEXEC|WARN_ONLY,
  32      0, do_fsync);
  33}
  34