X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=update.c;h=3f3d68b8721c75dd3f4c026074474012efde4d16;hb=b9ea02c04b91773e6e5a116313b360f3499a2d4e;hp=18b13e8c96ac224c12bd1d654971e6be7439ccd2;hpb=6ed02a0ee010a28b7649a9ef734679f7818c57e3;p=oweals%2Fbusybox.git diff --git a/update.c b/update.c index 18b13e8c9..3f3d68b87 100644 --- a/update.c +++ b/update.c @@ -23,24 +23,22 @@ * */ +/* + * Note: This program is only necessary if you are running a 2.0.x (or + * earlier) kernel. 2.2.x and higher flush filesystem buffers automatically. + */ + #include "internal.h" -#include #include #include +#include /* for getopt() */ + #if defined(__GLIBC__) #include #else -_syscall2(int, bdflush, int, func, int, data); -#endif /* __GLIBC__ */ - -static char update_usage[] = - "update [options]\n\n" - "Periodically flushes filesystem buffers.\n\n" - "Options:\n" - "\t-S\tforce use of sync(2) instead of flushing\n" - "\t-s SECS\tcall sync this often (default 30)\n" - "\t-f SECS\tflush some buffers this often (default 5)\n"; +static _syscall2(int, bdflush, int, func, int, data); +#endif /* __GLIBC__ */ static unsigned int sync_duration = 30; static unsigned int flush_duration = 5; @@ -49,29 +47,22 @@ static int use_sync = 0; extern int update_main(int argc, char **argv) { int pid; + int opt; - argc--; - argv++; - while (argc>0 && **argv == '-') { - while (*++(*argv)) { - switch (**argv) { + while ((opt = getopt(argc, argv, "Ss:f:")) > 0) { + switch (opt) { case 'S': use_sync = 1; break; case 's': - if (--argc < 1) usage(update_usage); - sync_duration = atoi(*(++argv)); + sync_duration = atoi(optarg); break; case 'f': - if (--argc < 1) usage(update_usage); - flush_duration = atoi(*(++argv)); + flush_duration = atoi(optarg); break; default: usage(update_usage); - } } - argc--; - argv++; } pid = fork(); @@ -87,6 +78,8 @@ extern int update_main(int argc, char **argv) * This is no longer necessary since 1.3.5x, but it will harmlessly * exit if that is the case. */ + + /* set the program name that will show up in a 'ps' listing */ argv[0] = "bdflush (update)"; argv[1] = NULL; argv[2] = NULL; @@ -106,7 +99,7 @@ extern int update_main(int argc, char **argv) } } } - exit( TRUE); + return( TRUE); } /*