tdb/tools/tdbbackup.c

ソースコードを見る。

関数

static int file_newer (const char *fname1, const char *fname2)
static void usage (void)
int main (int argc, char *argv[])

変数

int optind
char * optarg


関数

static int file_newer ( const char *  fname1,
const char *  fname2 
) [static]

tdbbackup.c78 行で定義されています。

参照元 main().

00079 {
00080         struct stat st1, st2;
00081         if (stat(fname1, &st1) != 0) {
00082                 return 0;
00083         }
00084         if (stat(fname2, &st2) != 0) {
00085                 return 1;
00086         }
00087         return (st1.st_mtime > st2.st_mtime);
00088 }

static void usage ( void   )  [static]

tdbbackup.c90 行で定義されています。

参照先 printf().

00091 {
00092         printf("Usage: tdbbackup [options] <fname...>\n\n");
00093         printf("   -h            this help message\n");
00094         printf("   -s suffix     set the backup suffix\n");
00095         printf("   -v            verify mode (restore if corrupt)\n");
00096         printf("   -n hashsize   set the new hash size for the backup\n");
00097 }

int main ( int  argc,
char *  argv[] 
)

tdbbackup.c100 行で定義されています。

参照先 add_suffix()backup_tdb()cfile_newer()optargoptindusage()verify_tdb().

00101 {
00102         int i;
00103         int ret = 0;
00104         int c;
00105         int verify = 0;
00106         int hashsize = 0;
00107         const char *suffix = ".bak";
00108 
00109         while ((c = getopt(argc, argv, "vhs:n:")) != -1) {
00110                 switch (c) {
00111                 case 'h':
00112                         usage();
00113                         exit(0);
00114                 case 'v':
00115                         verify = 1;
00116                         break;
00117                 case 's':
00118                         suffix = optarg;
00119                         break;
00120                 case 'n':
00121                         hashsize = atoi(optarg);
00122                         break;
00123                 }
00124         }
00125 
00126         argc -= optind;
00127         argv += optind;
00128 
00129         if (argc < 1) {
00130                 usage();
00131                 exit(1);
00132         }
00133 
00134         for (i=0; i<argc; i++) {
00135                 const char *fname = argv[i];
00136                 char *bak_name;
00137 
00138                 bak_name = add_suffix(fname, suffix);
00139 
00140                 if (verify) {
00141                         if (verify_tdb(fname, bak_name) != 0) {
00142                                 ret = 1;
00143                         }
00144                 } else {
00145                         if (file_newer(fname, bak_name) &&
00146                             backup_tdb(fname, bak_name, hashsize) != 0) {
00147                                 ret = 1;
00148                         }
00149                 }
00150 
00151                 free(bak_name);
00152         }
00153 
00154         return ret;
00155 }


変数

int optind

char* optarg


Sambaに対してSat Aug 29 21:24:31 2009に生成されました。  doxygen 1.4.7