本文整理汇总了C++中poptGetArgs函数的典型用法代码示例。如果您正苦于以下问题:C++ poptGetArgs函数的具体用法?C++ poptGetArgs怎么用?C++ poptGetArgs使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了poptGetArgs函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int
main(int argc, char *argv[])
{
poptContext pc;
const char **extra_args;
int opt;
pc = poptGetContext(PROGRAM, argc, (const char **)argv,
long_options, 0);
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 'h':
tls_usage(0);
default:
fprintf(stderr,
"%s: %s\n",
poptBadOption(pc, POPT_BADOPTION_NOALIAS),
poptStrerror(opt));
tls_usage(1);
}
}
extra_args = poptGetArgs(pc);
if (!extra_args || *extra_args == NULL)
tls_usage(1);
for (; *extra_args; extra_args++)
list_file(*extra_args);
poptFreeContext(pc);
return 0;
}
示例2: main
int
main(int argc, char *argv[])
/*@globals __assert_program_name,
rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies __assert_program_name, _rpmrepo,
rpmGlobalMacroContext, fileSystem, internalState @*/
{
poptContext optCon = rpmioInit(argc, argv, optionsTable);
const char ** av = NULL;
int ac;
int rc = 1; /* assume failure. */
int i;
/*@-observertrans -readonlytrans @*/
__progname = "rpmgpg";
/*@=observertrans =readonlytrans @*/
av = poptGetArgs(optCon);
if (av == NULL || av[0] == NULL) {
poptPrintUsage(optCon, stderr, 0);
goto exit;
}
ac = argvCount(av);
if (av != NULL)
for (i = 0; i < ac; i++) {
}
rc = 0;
exit:
optCon = rpmioFini(optCon);
return rc;
}
示例3: main
int
main(int argc, char *argv[])
{
poptContext optCon = rpmioInit(argc, argv, optionsTable);
const char * pythonFN = NULL;
int pythonFlags = 0;
rpmpython python = rpmpythonNew(pythonFN, pythonFlags);
ARGV_t av = poptGetArgs(optCon);
int ac = argvCount(av);
const char * fn;
int rc = 1; /* assume failure */
if (ac < 1) {
poptPrintUsage(optCon, stderr, 0);
goto exit;
}
while ((fn = *av++) != NULL) {
const char * result;
rpmRC ret;
result = NULL;
if ((ret = rpmpythonRunFile(python, fn, &result)) != RPMRC_OK)
goto exit;
if (result != NULL && *result != '\0')
fprintf(stdout, "%s\n", result);
}
rc = 0;
exit:
python = rpmpythonFree(python);
optCon = rpmioFini(optCon);
return rc;
}
示例4: main
/*
main program
*/
int main(int argc, const char *argv[])
{
struct ctdb_context *ctdb;
struct ctdb_db_context *ctdb_db;
struct poptOption popt_options[] = {
POPT_AUTOHELP
POPT_CTDB_CMDLINE
{ "num-records", 'r', POPT_ARG_INT, &num_records, 0, "num_records", "integer" },
{ "base-rec", 'b', POPT_ARG_INT, &base_rec, 0, "base_rec", "integer" },
{ "delete-pct", 'p', POPT_ARG_INT, &delete_pct, 0, "delete_pct", "integer" },
POPT_TABLEEND
};
int opt;
const char **extra_argv;
int extra_argc = 0;
poptContext pc;
struct event_context *ev;
pc = poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST);
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
default:
fprintf(stderr, "Invalid option %s: %s\n",
poptBadOption(pc, 0), poptStrerror(opt));
exit(1);
}
}
/* setup the remaining options for the main program to use */
extra_argv = poptGetArgs(pc);
if (extra_argv) {
extra_argv++;
while (extra_argv[extra_argc]) extra_argc++;
}
ev = event_context_init(NULL);
ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0));
if (ctdb == NULL) {
printf("failed to connect to daemon\n");
exit(1);
}
/* attach to a specific database */
ctdb_db = ctdb_attach(ctdb, timeval_current_ofs(2, 0), "test.tdb",
false, 0);
if (!ctdb_db) {
printf("ctdb_attach failed - %s\n", ctdb_errstr(ctdb));
exit(1);
}
store_records(ctdb, ev);
return 0;
}
示例5: main
/*
main program
*/
int main(int argc, const char *argv[])
{
struct poptOption popt_options[] = {
POPT_AUTOHELP
{ "socket", 0, POPT_ARG_STRING, &globals.socketname, 0, "local socket name", "filename" },
POPT_TABLEEND
};
int opt;
const char **extra_argv;
int extra_argc = 0;
poptContext pc;
DEBUGLEVEL = DEBUG_INFO;
pc = poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST);
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
default:
fprintf(stderr, "Invalid option %s: %s\n",
poptBadOption(pc, 0), poptStrerror(opt));
exit(1);
}
}
/* setup the remaining options for the main program to use */
extra_argv = poptGetArgs(pc);
if (extra_argv) {
extra_argv++;
while (extra_argv[extra_argc]) extra_argc++;
}
if (globals.socketname == NULL) {
DEBUG(DEBUG_CRIT,("Socket name is undefined\n"));
exit(1);
}
if (socket_server_create()) {
DEBUG(DEBUG_CRIT,("Socket error: exiting\n"));
exit(1);
}
if (fork_helper()) {
DEBUG(DEBUG_CRIT,("Forking error: exiting\n"));
exit(1);
}
/* FIXME: Test tcp_checksum6, tcp_checksum */
/* FIXME: Test ctdb_sys_send_arp, ctdb_sys_send_tcp */
/* FIXME: Test ctdb_sys_{open,close}_capture_socket, ctdb_sys_read_tcp_packet */
test_ctdb_sys_check_iface_exists();
test_ctdb_get_peer_pid();
socket_server_close();
DEBUG(DEBUG_INFO,("%d/%d tests successfull\n", globals.successcount, globals.testcount));
return 0;
}
示例6: main
int
main(int argc, char *argv[])
{
poptContext con = rpmioInit(argc, argv, optionsTable);
ARGV_t av = poptGetArgs(con);
int ac = argvCount(av);;
const char ** keyids = NULL;
int ec = 0;
int xx;
_rpmhkp_lvl = RPMLOG_INFO; /* XXX default is RPMLOG_DEBUG */
if (_hkp_keyserver == NULL)
_hkp_keyserver = xstrdup("keys.rpm5.org");
if (_rpmhkp_spew)
_rpmhkp_debug = -1;
/* XXX no macros are loaded if using poptIO. */
addMacro(NULL, "_hkp_keyserver", NULL, _hkp_keyserver, -1);
addMacro(NULL, "_hkp_keyserver_query", NULL, _hkp_keyserver_query, -1);
if (ac == 0) {
xx = argvAppend(&keyids, _keyids);
} else {
int gotstdin = 0;
int i;
for (i = 0; i < ac; i++) {
if (strcmp(av[i], "-")) {
xx = argvAdd(&keyids, (ARGstr_t)av[i]);
continue;
}
if (gotstdin)
continue;
gotstdin++;
if (argvFgets(&keyids, NULL))
goto exit;
}
}
ec = rpmhkpReadKeys(keyids);
if (_rpmhkp_stats)
_rpmhkpPrintStats(NULL);
exit:
keyids = argvFree(keyids);
_hkp_keyserver = _free(_hkp_keyserver);
/*@[email protected]*/ urlFreeCache();
con = rpmioFini(con);
return ec;
}
示例7: main
int main(int argc, char *argv[])
{
rpmts ts = NULL;
enum modes bigMode = MODE_INSTALL;
struct rpmInstallArguments_s *ia = &rpmIArgs;
poptContext optCon;
int ec = 0;
int ret = 0;
char rpmFile[1][PATH_MAX];
memset(&rpmFile,0,PATH_MAX);
snprintf(rpmFile[0],PATH_MAX,"%s",argv[1]);
char *p[2];
p[0] = "";
p[1] = (char *)&rpmFile[0];
optCon = rpmcliInit(2, p, optionsTable);
printf("\n argc[%d],bigmode[%s]\n",argc,bigMode == MODE_UNKNOWN?"unknow":"others");
ia->installInterfaceFlags = INSTALL_INSTALL | INSTALL_LABEL | INSTALL_PERCENT;
ts = rpmtsCreate();
rpmtsSetRootDir(ts, rpmcliRootDir);
if (!ia->incldocs) {
if (rpmExpandNumeric("%{_excludedocs}"))
ia->transFlags |= RPMTRANS_FLAG_NODOCS;
}
if (ia->noDeps)
ia->installInterfaceFlags |= INSTALL_NODEPS;
if (ia->prefix) {
ia->relocations = malloc(2 * sizeof(*ia->relocations));
ia->relocations[0].oldPath = NULL; /* special case magic */
ia->relocations[0].newPath = ia->prefix;
ia->relocations[1].oldPath = NULL;
ia->relocations[1].newPath = NULL;
} else if (ia->relocations) {
ia->relocations = realloc(ia->relocations,
sizeof(*ia->relocations) * (ia->numRelocations + 1));
ia->relocations[ia->numRelocations].oldPath = NULL;
ia->relocations[ia->numRelocations].newPath = NULL;
}
ret= rpmInstall(ts, ia, (ARGV_t) poptGetArgs(optCon));
printf("\n ret[%d]\n",ret);
rpmtsFree(ts);
ts = NULL;
rpmcliFini(optCon);
return 0;
}
示例8: main
int main(int argc, char **argv)
{
poptContext optCon = rpmioInit(argc, argv, optionsTable);
const char ** av = NULL;
int ac;
int r = -1;
_rpmaug_debug = -1;
if (_rpmaugLoadargv != NULL)
_rpmaugLoadpath = argvJoin(_rpmaugLoadargv, PATH_SEP_CHAR);
_rpmaugI = rpmaugNew(_rpmaugRoot, _rpmaugLoadpath, _rpmaugFlags);
if (_rpmaugI == NULL) {
fprintf(stderr, "Failed to initialize Augeas\n");
goto exit;
}
#if defined(WITH_READLINE)
readline_init();
#endif
av = poptGetArgs(optCon);
ac = argvCount(av);
if (ac > 0) { // Accept one command from the command line
const char * cmd = argvJoin(av, ' ');
const char *buf;
buf = NULL;
r = rpmaugRun(NULL, cmd, &buf);
cmd = _free(cmd);
if (buf && *buf)
fprintf(stdout, "%s", buf);
} else {
r = main_loop();
}
exit:
if (_rpmaugLoadargv)
_rpmaugLoadpath = _free(_rpmaugLoadpath);
_rpmaugLoadargv = argvFree(_rpmaugLoadargv);
_rpmaugI = rpmaugFree(_rpmaugI);
optCon = rpmioFini(optCon);
return (r == 0 ? EXIT_SUCCESS : EXIT_FAILURE);
}
示例9: main
int main (int argc, char *argv[])
{
LEErrorCode fontStatus = LE_NO_ERROR;
poptContext ptctx;
GtkWidget *app;
const char *defaultArgs[] = {"Sample.txt", NULL};
const char **args;
int i;
FT_Init_FreeType(&engine);
gnome_init_with_popt_table("gnomelayout", "0.1", argc, argv, NULL, 0, &ptctx);
guiSupport = gs_gnomeGuiSupportOpen();
fontMap = fm_gnomeFontMapOpen(engine, "FontMap.Gnome", 24, guiSupport, &fontStatus);
font = le_scriptCompositeFontOpen(fontMap);
if (LE_FAILURE(fontStatus)) {
FT_Done_FreeType(engine);
return 1;
}
args = poptGetArgs(ptctx);
if (args == NULL) {
args = defaultArgs;
}
for (i = 0; args[i] != NULL; i += 1) {
app = newSample(args[i]);
gtk_widget_show_all(app);
}
poptFreeContext(ptctx);
gtk_main();
le_fontClose(font);
gs_gnomeGuiSupportClose(guiSupport);
FT_Done_FreeType(engine);
exit(0);
}
示例10: main
int
main(int argc, char *argv[])
{
poptContext optCon = rpmioInit(argc, argv, optionsTable);
const char * perlFN = NULL;
int perlFlags = 0;
rpmperl perl = rpmperlNew(perlFN, perlFlags);
ARGV_t av = poptGetArgs(optCon);
int ac = argvCount(av);
#ifdef NOTYET
const char * fn;
#endif
const char * result;
int rc = 1; /* assume failure */
#ifdef NOTYET
if (ac < 1) {
poptPrintUsage(optCon, stderr, 0);
goto exit;
}
while ((fn = *av++) != NULL) {
rpmRC ret;
result = NULL;
if ((ret = rpmperlRunFile(perl, fn, &result)) != RPMRC_OK)
goto exit;
if (result != NULL && *result != '\0')
fprintf(stdout, "%s\n", result);
}
rc = 0;
#else
result = NULL;
if (rpmperlRun(perl, "print \"Hello, world!\n\";", &result) != RPMRC_OK)
goto exit;
if (result && *result)
fprintf(stdout, "%s\n", result);
rc = 0;
#endif
exit:
perl = rpmperlFree(perl);
optCon = rpmioFini(optCon);
return rc;
}
示例11: air_option_context_parse
void air_option_context_parse(
AirOptionCtx *aoctx)
{
#if USE_GOPTION
GError *oerr = NULL;
g_option_context_parse(aoctx->octx, aoctx->argc, aoctx->argv, &oerr);
if (oerr) {
air_opterr("%s", oerr->message);
}
#elif USE_POPT
{
int argcount = 0;
char **rest = 0;
int rc;
GPtrArray *new_argv = NULL;
rc = poptGetNextOpt(aoctx->octx);
if (rc != -1) {
air_opterr("%s", poptStrerror(rc));
}
/* We have to manually construct the argv here because GLib keeps the
* program name in argv[0] and popt doesn't. */
new_argv = g_ptr_array_sized_new(64);
g_ptr_array_add(new_argv, g_strdup(*(aoctx->argv)[0]));
/* Do the actual parsing, returning non-switch args */
rest = (char **) poptGetArgs(aoctx->octx);
/* Walk through the remaining args, adding them to the new argv and
* counting them for argc */
while ( (rest != NULL) && rest[argcount] != NULL) {
g_ptr_array_add(new_argv, g_strdup(rest[argcount]));
argcount++;
}
g_ptr_array_add(new_argv, NULL);
/* Now replace the original argc and argv with post-parse values */
*(aoctx->argc) = argcount;
*(aoctx->argv) = (char **) g_ptr_array_free(new_argv, FALSE);
}
#endif
}
示例12: main
/*
main program
*/
int main(int argc, const char *argv[])
{
struct ctdb_context *ctdb;
struct poptOption popt_options[] = {
POPT_AUTOHELP
POPT_CTDB_CMDLINE
POPT_TABLEEND
};
int opt;
const char **extra_argv;
int extra_argc = 0;
poptContext pc;
struct event_context *ev;
pc = poptGetContext(argv[0], argc, argv, popt_options, POPT_CONTEXT_KEEP_FIRST);
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
default:
fprintf(stderr, "Invalid option %s: %s\n",
poptBadOption(pc, 0), poptStrerror(opt));
exit(1);
}
}
/* setup the remaining options for the main program to use */
extra_argv = poptGetArgs(pc);
if (extra_argv) {
extra_argv++;
while (extra_argv[extra_argc]) extra_argc++;
}
ev = event_context_init(NULL);
ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(5, 0));
if (ctdb == NULL) {
exit(1);
}
trackdb_test(ctdb);
return 0;
}
示例13: main
int main(int argc, char **argv) {
int rc;
char *errstr;
const char **args;
int forceit=0;
int supported=0;
int help=0;
poptContext optCon;
struct poptOption options[] = {
{ "force", 'f', POPT_ARG_NONE, &forceit, 0 },
{ "supported-iso", 'S', POPT_ARG_NONE, &supported, 0 },
{ "help", 'h', POPT_ARG_NONE, &help, 0},
{ 0, 0, 0, 0, 0}
};
optCon = poptGetContext("implantisomd5", argc, (const char **)argv, options, 0);
if ((rc = poptGetNextOpt(optCon)) < -1) {
fprintf(stderr, "bad option %s: %s\n",
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
poptStrerror(rc));
exit(1);
}
if (help)
usage();
args = poptGetArgs(optCon);
if (!args || !args[0] || !args[0][0])
usage();
rc = implantISOFile((char *)args[0], supported, forceit, 0, &errstr);
if (rc) {
fprintf(stderr, "ERROR: ");
fprintf(stderr, errstr, (char *)args[0]);
exit(1);
} else {
exit(0);
}
}
示例14: main
int
main(int argc, char *argv[])
{
poptContext optCon = rpmioInit(argc, argv, optionsTable);
ARGV_t av = NULL;
int ac;
const char * dn;
int rc = 0;
if (__debug) {
_av_debug = -1;
_dav_debug = -1;
_ftp_debug = -1;
_url_debug = -1;
_rpmio_debug = -1;
}
av = poptGetArgs(optCon);
ac = argvCount(av);
if (ac < 1) {
poptPrintUsage(optCon, stderr, 0);
goto exit;
}
while (rc == 0 && (dn = *av++) != NULL) {
#ifdef DYING /* XXX davOpendir() is adding pesky trailing '/'. */
/* XXX Add pesky trailing '/' to http:// URI's */
size_t nb = strlen(dn);
dn = rpmExpand(dn, (dn[nb-1] != '/' ? "/" : NULL), NULL);
rc = dirWalk(dn);
dn = _free(dn);
#else
rc = dirWalk(dn);
#endif
}
exit:
optCon = rpmioFini(optCon);
return rc;
}
示例15: main
int
main(int argc, char *argv[])
{
poptContext optCon = rpmioInit(argc, argv, optionsTable);
rpmtget tget = xcalloc(1, sizeof(*tget));
ARGV_t av = NULL;
int ac;
int rc = 0;
int xx;
if (__debug) {
_av_debug = -1;
_dav_debug = -1;
_ftp_debug = -1;
_url_debug = -1;
_rpmio_debug = -1;
}
av = poptGetArgs(optCon);
ac = argvCount(av);
if (ac < 1) {
poptPrintUsage(optCon, stderr, 0);
goto exit;
}
tget->pattern = hrefpat;
xx = mireAppend(RPMMIRE_PCRE, 0, tget->pattern, NULL, &tget->mires, &tget->nmires);
while (rc == 0 && (tget->uri = *av++) != NULL)
rc = readFile(tget);
tget->mires = mireFreeAll(tget->mires, tget->nmires);
tget->nmires = 0;
exit:
optCon = rpmioFini(optCon);
return rc;
}