source: branches/3.2/mindi-busybox/coreutils/fsync.c @ 3232

Last change on this file since 3232 was 3232, checked in by Bruno Cornec, 7 years ago
  • Update mindi-busybox to 1.21.1
  • Property svn:eol-style set to native
File size: 1.1 KB
Line 
1/* vi: set sw=4 ts=4: */
2/*
3 * Mini fsync implementation for busybox
4 *
5 * Copyright (C) 2008 Nokia Corporation. All rights reserved.
6 *
7 * Licensed under GPLv2 or later, see file LICENSE in this source tree.
8 */
9
10//usage:#define fsync_trivial_usage
11//usage:       "[-d] FILE..."
12//usage:#define fsync_full_usage "\n\n"
13//usage:       "Write files' buffered blocks to disk\n"
14//usage:     "\n    -d  Avoid syncing metadata"
15
16#include "libbb.h"
17#ifndef O_NOATIME
18# define O_NOATIME 0
19#endif
20
21/* This is a NOFORK applet. Be very careful! */
22
23int fsync_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
24int fsync_main(int argc UNUSED_PARAM, char **argv)
25{
26    int status;
27    int opts;
28
29    opts = getopt32(argv, "d"); /* fdatasync */
30    argv += optind;
31    if (!*argv) {
32        bb_show_usage();
33    }
34
35    status = EXIT_SUCCESS;
36    do {
37        int fd = open_or_warn(*argv, O_NOATIME | O_NOCTTY | O_RDONLY);
38
39        if (fd == -1) {
40            status = EXIT_FAILURE;
41            continue;
42        }
43        if ((opts ? fdatasync(fd) : fsync(fd))) {
44            //status = EXIT_FAILURE; - do we want this?
45            bb_simple_perror_msg(*argv);
46        }
47        close(fd);
48    } while (*++argv);
49
50    return status;
51}
Note: See TracBrowser for help on using the repository browser.