inetd: comment tweak. no code changes
[oweals/busybox.git] / coreutils / fsync.c
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 tarball for details.
8  */
9 #include "libbb.h"
10
11 /* This is a NOFORK applet. Be very careful! */
12
13 int fsync_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
14 int fsync_main(int argc UNUSED_PARAM, char **argv)
15 {
16         int status;
17         int opts;
18
19         opts = getopt32(argv, "d"); /* fdatasync */
20         argv += optind;
21         if (!*argv) {
22                 bb_show_usage();
23         }
24
25         status = EXIT_SUCCESS;
26         do {
27                 int fd = open3_or_warn(*argv, O_NOATIME | O_NOCTTY | O_RDONLY, 0);
28
29                 if (fd == -1) {
30                         status = EXIT_FAILURE;
31                         continue;
32                 }
33                 if ((opts ? fdatasync(fd) : fsync(fd))) {
34                         //status = EXIT_FAILURE; - do we want this?
35                         bb_simple_perror_msg(*argv);
36                 }
37                 close(fd);
38         } while (*++argv);
39
40         return status;
41 }