Converted option parsing to getopt(). Also added some explanatory comments.

This commit is contained in:
Mark Whitley 2000-07-20 23:06:27 +00:00
parent 51154bacbe
commit 1ac435c15e
2 changed files with 28 additions and 26 deletions

View File

@ -23,16 +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 "internal.h"
#include <sys/param.h> #include <sys/param.h>
#include <sys/syslog.h> #include <sys/syslog.h>
#include <unistd.h> /* for getopt() */
#if defined(__GLIBC__) #if defined(__GLIBC__)
#include <sys/kdaemon.h> #include <sys/kdaemon.h>
#else #else
static _syscall2(int, bdflush, int, func, int, data); static _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */ #endif /* __GLIBC__ */
static unsigned int sync_duration = 30; static unsigned int sync_duration = 30;
static unsigned int flush_duration = 5; static unsigned int flush_duration = 5;
@ -41,29 +47,22 @@ static int use_sync = 0;
extern int update_main(int argc, char **argv) extern int update_main(int argc, char **argv)
{ {
int pid; int pid;
int opt;
argc--; while ((opt = getopt(argc, argv, "Ss:f:")) > 0) {
argv++; switch (opt) {
while (argc>0 && **argv == '-') {
while (*++(*argv)) {
switch (**argv) {
case 'S': case 'S':
use_sync = 1; use_sync = 1;
break; break;
case 's': case 's':
if (--argc < 1) usage(update_usage); sync_duration = atoi(optarg);
sync_duration = atoi(*(++argv));
break; break;
case 'f': case 'f':
if (--argc < 1) usage(update_usage); flush_duration = atoi(optarg);
flush_duration = atoi(*(++argv));
break; break;
default: default:
usage(update_usage); usage(update_usage);
}
} }
argc--;
argv++;
} }
pid = fork(); pid = fork();
@ -79,6 +78,8 @@ extern int update_main(int argc, char **argv)
* This is no longer necessary since 1.3.5x, but it will harmlessly * This is no longer necessary since 1.3.5x, but it will harmlessly
* exit if that is the case. * exit if that is the case.
*/ */
/* set the program name that will show up in a 'ps' listing */
argv[0] = "bdflush (update)"; argv[0] = "bdflush (update)";
argv[1] = NULL; argv[1] = NULL;
argv[2] = NULL; argv[2] = NULL;

View File

@ -23,16 +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 "internal.h"
#include <sys/param.h> #include <sys/param.h>
#include <sys/syslog.h> #include <sys/syslog.h>
#include <unistd.h> /* for getopt() */
#if defined(__GLIBC__) #if defined(__GLIBC__)
#include <sys/kdaemon.h> #include <sys/kdaemon.h>
#else #else
static _syscall2(int, bdflush, int, func, int, data); static _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */ #endif /* __GLIBC__ */
static unsigned int sync_duration = 30; static unsigned int sync_duration = 30;
static unsigned int flush_duration = 5; static unsigned int flush_duration = 5;
@ -41,29 +47,22 @@ static int use_sync = 0;
extern int update_main(int argc, char **argv) extern int update_main(int argc, char **argv)
{ {
int pid; int pid;
int opt;
argc--; while ((opt = getopt(argc, argv, "Ss:f:")) > 0) {
argv++; switch (opt) {
while (argc>0 && **argv == '-') {
while (*++(*argv)) {
switch (**argv) {
case 'S': case 'S':
use_sync = 1; use_sync = 1;
break; break;
case 's': case 's':
if (--argc < 1) usage(update_usage); sync_duration = atoi(optarg);
sync_duration = atoi(*(++argv));
break; break;
case 'f': case 'f':
if (--argc < 1) usage(update_usage); flush_duration = atoi(optarg);
flush_duration = atoi(*(++argv));
break; break;
default: default:
usage(update_usage); usage(update_usage);
}
} }
argc--;
argv++;
} }
pid = fork(); pid = fork();
@ -79,6 +78,8 @@ extern int update_main(int argc, char **argv)
* This is no longer necessary since 1.3.5x, but it will harmlessly * This is no longer necessary since 1.3.5x, but it will harmlessly
* exit if that is the case. * exit if that is the case.
*/ */
/* set the program name that will show up in a 'ps' listing */
argv[0] = "bdflush (update)"; argv[0] = "bdflush (update)";
argv[1] = NULL; argv[1] = NULL;
argv[2] = NULL; argv[2] = NULL;