📄 bbtar.c
字号:
/* bbtar.c - generate the names of archive files to be put to tape */#ifndef lintstatic char ident[] = "@(#)$Id: bbtar.c,v 1.6 1992/12/15 00:20:22 jromine Exp $";#endif /* lint *//* Usage: % cd ~bboards/archive # followed by one of: % tar cv `bbtar private` # to save private BBoard archives % tar cv `bbtar public` # to save public BBoard archives % tar cv `bbtar` # to save all BBoard archives */#include <pwd.h>#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include "../zotnet/bboards.h"#define NOTOK (-1)static int priv = 0;static char archives[BUFSIZ];static process();#ifndef __STDC__#ifdef SYS5struct passwd *getpwnam ();#endif#endif/* *//* ARGSUSED */main (argc, argv)int argc;char **argv;{ struct bboard *bb; struct passwd *pw; if ((pw = getpwnam (BBOARDS)) == NULL) exit (1); (void) sprintf (archives, "%s/archive/", pw -> pw_dir); if (argc > 1) priv = strcmp (argv[1], "private") == 0 ? 1 : strcmp (argv[1], "public") == 0 ? -1 : 0; (void) setbbent (SB_STAY); while (bb = getbbent ()) process (bb); (void) endbbent (); exit (0);}/* */static process (bb)struct bboard *bb;{ struct stat st; if (stat (bb -> bb_archive, &st) == NOTOK) return; if (strncmp (archives, bb -> bb_archive, strlen (archives)) == 0) bb -> bb_archive += strlen (archives); if (priv == 0) printf ("%s\n", bb -> bb_archive); else if ((st.st_mode & 0444) != 0444 ? (priv > 0) : (priv < 0)) printf ("%s\n", bb -> bb_archive);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -