本文整理汇总了C++中poptGetOptArg函数的典型用法代码示例。如果您正苦于以下问题:C++ poptGetOptArg函数的具体用法?C++ poptGetOptArg怎么用?C++ poptGetOptArg使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了poptGetOptArg函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
int opt;
poptContext pc;
char *outputfile = NULL;
struct registry_context *h1 = NULL, *h2 = NULL;
int from_null = 0;
WERROR error;
struct reg_diff *diff;
struct poptOption long_options[] = {
POPT_AUTOHELP
{"output", 'o', POPT_ARG_STRING, &outputfile, 'o', "output file to use", NULL },
{"null", 'n', POPT_ARG_NONE, &from_null, 'n', "Diff from NULL", NULL },
{"remote", 'R', POPT_ARG_STRING, NULL, 0, "Connect to remote server" , NULL },
{"local", 'L', POPT_ARG_NONE, NULL, 0, "Open local registry", NULL },
POPT_COMMON_SAMBA
POPT_COMMON_CREDENTIALS
POPT_COMMON_VERSION
{ NULL }
};
registry_init();
pc = poptGetContext(argv[0], argc, (const char **) argv, long_options,0);
while((opt = poptGetNextOpt(pc)) != -1) {
error = WERR_OK;
switch(opt) {
case 'L':
if (!h1 && !from_null) error = reg_open_local(NULL, &h1, NULL, cmdline_credentials);
else if (!h2) error = reg_open_local(NULL, &h2, NULL, cmdline_credentials);
break;
case 'R':
if (!h1 && !from_null)
error = reg_open_remote(&h1, NULL, cmdline_credentials,
poptGetOptArg(pc), NULL);
else if (!h2) error = reg_open_remote(&h2, NULL, cmdline_credentials,
poptGetOptArg(pc), NULL);
break;
}
if (!W_ERROR_IS_OK(error)) {
fprintf(stderr, "Error: %s\n", win_errstr(error));
return 1;
}
}
poptFreeContext(pc);
diff = reg_generate_diff(NULL, h1, h2);
if (!diff) {
fprintf(stderr, "Unable to generate diff between keys\n");
return -1;
}
reg_diff_save(diff, outputfile);
return 0;
}
开发者ID:Marvin-Lee,项目名称:libwmiclient,代码行数:59,代码来源:regdiff.c
示例2: InitOption
void InitOption(int argc, char* argv[])
{
static struct poptOption option_table[] =
{
{NULL, 's', POPT_ARG_STRING, NULL, UI_OPT_SOCKET },
{"model", 0, POPT_ARG_STRING, NULL, UI_OPT_MODEL },
{"cups", 0, 0, NULL, UI_OPT_CUPS },
{"internalversion", 0, POPT_ARG_NONE, NULL, UI_OPT_INTVER }, /* Ver.2.70 */
{"bidi", 0, POPT_ARG_NONE, NULL, UI_OPT_BIDI }, /* Ver.3.20 */
{NULL, 0, 0, NULL, 0 }
};
poptContext context
= poptGetContext("printui", argc, (const char**)argv, option_table, 0);
int rc;
g_model_name = NULL;
g_cups_mode = FALSE;
g_bidi_mode = FALSE; /* Ver.3.20 */
while( (rc = poptGetNextOpt(context)) > 0 )
{
switch( rc )
{
case UI_OPT_SOCKET:
g_socketname = g_strdup(poptGetOptArg(context));
break;
case UI_OPT_MODEL:
g_model_name = g_strdup(poptGetOptArg(context));
break;
case UI_OPT_CUPS:
g_cups_mode = TRUE;
break;
case UI_OPT_INTVER:
g_message( "Internal Version : %s\n" ,INTERNAL_VERSION_STR );
break;
case UI_OPT_BIDI: /* Ver.3.20 */
g_bidi_mode = TRUE;
break;
default:
break;
}
}
if( rc < -1 )
g_warning("Unknown switch, %s\n",
poptBadOption(context, POPT_BADOPTION_NOALIAS));
}
开发者ID:dbnicholson,项目名称:cnijfilter-common,代码行数:53,代码来源:main.c
示例3: InitOption
void InitOption(int argc, char* argv[])
{
static struct poptOption option_table[] =
{
{NULL, 's', POPT_ARG_STRING, NULL, UI_OPT_SOCKET },
{"model", 0, POPT_ARG_STRING, NULL, UI_OPT_MODEL },
{"cups", 0, 0, NULL, UI_OPT_CUPS },
{NULL, 0, 0, NULL, 0}
};
poptContext context
= poptGetContext("printui", argc, (const char**)argv, option_table, 0);
int rc;
g_model_name = NULL;
g_cups_mode = FALSE;
while( (rc = poptGetNextOpt(context)) > 0 )
{
switch( rc )
{
case UI_OPT_SOCKET:
g_socketname = g_strdup(poptGetOptArg(context));
break;
case UI_OPT_MODEL:
g_model_name = g_strdup(poptGetOptArg(context));
break;
case UI_OPT_CUPS:
g_cups_mode = TRUE;
break;
default:
break;
}
}
if( rc < -1 )
g_warning("Unknown switch, %s\n",
poptBadOption(context, POPT_BADOPTION_NOALIAS));
}
开发者ID:dbnicholson,项目名称:cnijfilter-common,代码行数:42,代码来源:main.c
示例4: rdiff_options
static void rdiff_options(poptContext opcon)
{
int c;
char const *a;
while ((c = poptGetNextOpt(opcon)) != -1) {
switch (c) {
case 'h':
help();
exit(RS_DONE);
case 'V':
rdiff_show_version();
exit(RS_DONE);
case 'v':
if (!rs_supports_trace()) {
rs_error("library does not support trace");
}
rs_trace_set_level(RS_LOG_DEBUG);
break;
case OPT_GZIP:
case OPT_BZIP2:
if ((a = poptGetOptArg(opcon))) {
int l = atoi(a);
if (c == OPT_GZIP)
gzip_level = l;
else
bzip2_level = l;
} else {
if (c == OPT_GZIP)
gzip_level = -1; /* library default */
else
bzip2_level = 9; /* demand the best */
}
rs_error("sorry, compression is not really implemented yet");
exit(RS_UNIMPLEMENTED);
default:
bad_option(opcon, c);
}
}
}
开发者ID:Estevo-Aleixo,项目名称:librsync,代码行数:42,代码来源:rdiff.c
示例5: get_fields_args
static int get_fields_args(poptContext *pc)
{
char *str, *strlist, *strctx;
int ret = 0;
strlist = (char *) poptGetOptArg(*pc);
if (!strlist) {
return -EINVAL;
}
str = strtok_r(strlist, ",", &strctx);
do {
opt_trace_default_fields = 0;
if (!strcmp(str, "all"))
opt_all_fields = 1;
else if (!strcmp(str, "trace"))
opt_trace_field = 1;
else if (!strcmp(str, "trace:hostname"))
opt_trace_hostname_field = 1;
else if (!strcmp(str, "trace:domain"))
opt_trace_domain_field = 1;
else if (!strcmp(str, "trace:procname"))
opt_trace_procname_field = 1;
else if (!strcmp(str, "trace:vpid"))
opt_trace_vpid_field = 1;
else if (!strcmp(str, "loglevel"))
opt_loglevel_field = 1;
else if (!strcmp(str, "emf"))
opt_emf_field = 1;
else if (!strcmp(str, "callsite"))
opt_callsite_field = 1;
else {
fprintf(stderr, "[error] unknown field type %s\n", str);
ret = -EINVAL;
goto end;
}
} while ((str = strtok_r(NULL, ",", &strctx)));
end:
free(strlist);
return ret;
}
开发者ID:mjeanson,项目名称:debian-babeltrace,代码行数:40,代码来源:babeltrace.c
示例6: get_names_args
static int get_names_args(poptContext *pc)
{
char *str, *strlist, *strctx;
int ret = 0;
opt_payload_field_names = 0;
opt_context_field_names = 0;
strlist = (char *) poptGetOptArg(*pc);
if (!strlist) {
return -EINVAL;
}
str = strtok_r(strlist, ",", &strctx);
do {
if (!strcmp(str, "all"))
opt_all_field_names = 1;
else if (!strcmp(str, "scope"))
opt_scope_field_names = 1;
else if (!strcmp(str, "context") || !strcmp(str, "ctx"))
opt_context_field_names = 1;
else if (!strcmp(str, "header"))
opt_header_field_names = 1;
else if (!strcmp(str, "payload") || !strcmp(str, "args") || !strcmp(str, "arg"))
opt_payload_field_names = 1;
else if (!strcmp(str, "none")) {
opt_all_field_names = 0;
opt_scope_field_names = 0;
opt_context_field_names = 0;
opt_header_field_names = 0;
opt_payload_field_names = 0;
} else {
fprintf(stderr, "[error] unknown field name type %s\n", str);
ret = -EINVAL;
goto end;
}
} while ((str = strtok_r(NULL, ",", &strctx)));
end:
free(strlist);
return ret;
}
开发者ID:mjeanson,项目名称:debian-babeltrace,代码行数:39,代码来源:babeltrace.c
示例7: main
int main(int argc, const char **argv)
{
uid_t pc_uid = 0;
const char *pc_gecos = NULL;
const char *pc_home = NULL;
char *pc_shell = NULL;
int pc_debug = SSSDBG_DEFAULT;
int pc_create_home = 0;
const char *pc_username = NULL;
const char *pc_skeldir = NULL;
const char *pc_selinux_user = NULL;
struct poptOption long_options[] = {
POPT_AUTOHELP
{ "debug", '\0', POPT_ARG_INT | POPT_ARGFLAG_DOC_HIDDEN, &pc_debug, 0, _("The debug level to run with"), NULL },
{ "uid", 'u', POPT_ARG_INT, &pc_uid, 0, _("The UID of the user"), NULL },
{ "gecos", 'c', POPT_ARG_STRING, &pc_gecos, 0, _("The comment string"), NULL },
{ "home", 'h', POPT_ARG_STRING, &pc_home, 0, _("Home directory"), NULL },
{ "shell", 's', POPT_ARG_STRING, &pc_shell, 0, _("Login shell"), NULL },
{ "groups", 'G', POPT_ARG_STRING, NULL, 'G', _("Groups"), NULL },
{ "create-home", 'm', POPT_ARG_NONE, NULL, 'm', _("Create user's directory if it does not exist"), NULL },
{ "no-create-home", 'M', POPT_ARG_NONE, NULL, 'M', _("Never create user's directory, overrides config"), NULL },
{ "skel", 'k', POPT_ARG_STRING, &pc_skeldir, 0, _("Specify an alternative skeleton directory"), NULL },
{ "selinux-user", 'Z', POPT_ARG_STRING, &pc_selinux_user, 0, _("The SELinux user for user's login"), NULL },
POPT_TABLEEND
};
poptContext pc = NULL;
struct tools_ctx *tctx = NULL;
char *groups = NULL;
char *badgroup = NULL;
int ret;
errno_t sret;
bool in_transaction = false;
debug_prg_name = argv[0];
ret = set_locale();
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE,
"set_locale failed (%d): %s\n", ret, strerror(ret));
ERROR("Error setting the locale\n");
ret = EXIT_FAILURE;
goto fini;
}
/* parse parameters */
pc = poptGetContext(NULL, argc, argv, long_options, 0);
poptSetOtherOptionHelp(pc, "USERNAME");
while ((ret = poptGetNextOpt(pc)) > 0) {
switch (ret) {
case 'G':
groups = poptGetOptArg(pc);
if (!groups) {
BAD_POPT_PARAMS(pc, _("Specify group to add to\n"),
ret, fini);
}
break;
case 'm':
pc_create_home = DO_CREATE_HOME;
break;
case 'M':
pc_create_home = DO_NOT_CREATE_HOME;
break;
}
}
DEBUG_CLI_INIT(pc_debug);
if (ret != -1) {
BAD_POPT_PARAMS(pc, poptStrerror(ret), ret, fini);
}
/* username is an argument without --option */
pc_username = poptGetArg(pc);
if (pc_username == NULL) {
BAD_POPT_PARAMS(pc, _("Specify user to add\n"), ret, fini);
}
CHECK_ROOT(ret, debug_prg_name);
ret = init_sss_tools(&tctx);
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE,
"init_sss_tools failed (%d): %s\n", ret, strerror(ret));
if (ret == ENOENT) {
ERROR("Error initializing the tools - no local domain\n");
} else {
ERROR("Error initializing the tools\n");
}
ret = EXIT_FAILURE;
goto fini;
}
/* if the domain was not given as part of FQDN, default to local domain */
ret = parse_name_domain(tctx, pc_username);
if (ret != EOK) {
ERROR("Invalid domain specified in FQDN\n");
ret = EXIT_FAILURE;
goto fini;
//.........这里部分代码省略.........
开发者ID:3van,项目名称:sssd,代码行数:101,代码来源:sss_useradd.c
示例8: main
/****************************************************************************
main program
****************************************************************************/
int main(int argc, const char *argv[])
{
int opt;
unsigned int lookup_type = 0x0;
fstring lookup;
static bool find_master=False;
static bool lookup_by_ip = False;
poptContext pc = NULL;
TALLOC_CTX *frame = talloc_stackframe();
int rc = 0;
struct poptOption long_options[] = {
POPT_AUTOHELP
{ "broadcast", 'B', POPT_ARG_STRING, NULL, 'B', "Specify address to use for broadcasts", "BROADCAST-ADDRESS" },
{ "flags", 'f', POPT_ARG_NONE, NULL, 'f', "List the NMB flags returned" },
{ "unicast", 'U', POPT_ARG_STRING, NULL, 'U', "Specify address to use for unicast" },
{ "master-browser", 'M', POPT_ARG_NONE, NULL, 'M', "Search for a master browser" },
{ "recursion", 'R', POPT_ARG_NONE, NULL, 'R', "Set recursion desired in package" },
{ "status", 'S', POPT_ARG_NONE, NULL, 'S', "Lookup node status as well" },
{ "translate", 'T', POPT_ARG_NONE, NULL, 'T', "Translate IP addresses into names" },
{ "root-port", 'r', POPT_ARG_NONE, NULL, 'r', "Use root port 137 (Win95 only replies to this)" },
{ "lookup-by-ip", 'A', POPT_ARG_NONE, NULL, 'A', "Do a node status on <name> as an IP Address" },
POPT_COMMON_SAMBA
POPT_COMMON_CONNECTION
{ 0, 0, 0, 0 }
};
*lookup = 0;
load_case_tables();
setup_logging(argv[0], DEBUG_STDOUT);
pc = poptGetContext("nmblookup", argc, argv,
long_options, POPT_CONTEXT_KEEP_FIRST);
poptSetOtherOptionHelp(pc, "<NODE> ...");
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 'f':
give_flags = true;
break;
case 'M':
find_master = true;
break;
case 'R':
recursion_desired = true;
break;
case 'S':
find_status = true;
break;
case 'r':
RootPort = true;
break;
case 'A':
lookup_by_ip = true;
break;
case 'B':
if (interpret_string_addr(&bcast_addr,
poptGetOptArg(pc),
NI_NUMERICHOST)) {
got_bcast = True;
use_bcast = True;
}
break;
case 'U':
if (interpret_string_addr(&bcast_addr,
poptGetOptArg(pc),
0)) {
got_bcast = True;
use_bcast = False;
}
break;
case 'T':
translate_addresses = !translate_addresses;
break;
}
}
poptGetArg(pc); /* Remove argv[0] */
if(!poptPeekArg(pc)) {
poptPrintUsage(pc, stderr, 0);
rc = 1;
goto out;
}
if (!lp_load_global(get_dyn_CONFIGFILE())) {
fprintf(stderr, "Can't load %s - run testparm to debug it\n",
get_dyn_CONFIGFILE());
}
load_interfaces();
if (!open_sockets()) {
rc = 1;
goto out;
//.........这里部分代码省略.........
开发者ID:javierag,项目名称:samba,代码行数:101,代码来源:nmblookup.c
示例9: main
int main(int argc, const char **argv)
{
int c = 0;
const char *file = NULL;
char *rcfile = NULL;
bool smb_encrypt = false;
int resume = 0, recursive = 0;
TALLOC_CTX *frame = talloc_stackframe();
struct poptOption long_options[] = {
{"guest", 'a', POPT_ARG_NONE, NULL, 'a', "Work as user guest" },
{"encrypt", 'e', POPT_ARG_NONE, NULL, 'e', "Encrypt SMB transport (UNIX extended servers only)" },
{"resume", 'r', POPT_ARG_NONE, &resume, 0, "Automatically resume aborted files" },
{"update", 'U', POPT_ARG_NONE, &update, 0, "Download only when remote file is newer than local file or local file is missing"},
{"recursive", 'R', POPT_ARG_NONE, &recursive, 0, "Recursively download files" },
{"username", 'u', POPT_ARG_STRING, &username, 'u', "Username to use" },
{"password", 'p', POPT_ARG_STRING, &password, 'p', "Password to use" },
{"workgroup", 'w', POPT_ARG_STRING, &workgroup, 'w', "Workgroup to use (optional)" },
{"nonprompt", 'n', POPT_ARG_NONE, &nonprompt, 'n', "Don't ask anything (non-interactive)" },
{"debuglevel", 'd', POPT_ARG_INT, &debuglevel, 'd', "Debuglevel to use" },
{"outputfile", 'o', POPT_ARG_STRING, &outputfile, 'o', "Write downloaded data to specified file" },
{"stdout", 'O', POPT_ARG_NONE, &send_stdout, 'O', "Write data to stdout" },
{"dots", 'D', POPT_ARG_NONE, &dots, 'D', "Show dots as progress indication" },
{"quiet", 'q', POPT_ARG_NONE, &quiet, 'q', "Be quiet" },
{"verbose", 'v', POPT_ARG_NONE, &verbose, 'v', "Be verbose" },
{"keep-permissions", 'P', POPT_ARG_NONE, &keep_permissions, 'P', "Keep permissions" },
{"blocksize", 'b', POPT_ARG_INT, &blocksize, 'b', "Change number of bytes in a block"},
{"rcfile", 'f', POPT_ARG_STRING, NULL, 'f', "Use specified rc file"},
POPT_AUTOHELP
POPT_TABLEEND
};
poptContext pc;
load_case_tables();
/* only read rcfile if it exists */
if (asprintf(&rcfile, "%s/.smbgetrc", getenv("HOME")) == -1) {
return 1;
}
if(access(rcfile, F_OK) == 0)
readrcfile(rcfile, long_options);
free(rcfile);
#ifdef SIGWINCH
signal(SIGWINCH, change_columns);
#endif
signal(SIGINT, signal_quit);
signal(SIGTERM, signal_quit);
pc = poptGetContext(argv[0], argc, argv, long_options, 0);
while((c = poptGetNextOpt(pc)) >= 0) {
switch(c) {
case 'f':
readrcfile(poptGetOptArg(pc), long_options);
break;
case 'a':
username = ""; password = "";
break;
case 'e':
smb_encrypt = true;
break;
}
}
if((send_stdout || resume || outputfile) && update) {
fprintf(stderr, "The -o, -R or -O and -U options can not be used together.\n");
return 1;
}
if((send_stdout || outputfile) && recursive) {
fprintf(stderr, "The -o or -O and -R options can not be used together.\n");
return 1;
}
if(outputfile && send_stdout) {
fprintf(stderr, "The -o and -O options cannot be used together.\n");
return 1;
}
if(smbc_init(get_auth_data, debuglevel) < 0) {
fprintf(stderr, "Unable to initialize libsmbclient\n");
return 1;
}
if (smb_encrypt) {
SMBCCTX *smb_ctx = smbc_set_context(NULL);
smbc_option_set(smb_ctx,
CONST_DISCARD(char *, "smb_encrypt_level"),
"require");
}
columns = get_num_cols();
total_start_time = time(NULL);
while ( (file = poptGetArg(pc)) ) {
if (!recursive)
return smb_download_file(file, "", recursive, resume, outputfile);
else
return smb_download_dir(file, "", resume);
}
//.........这里部分代码省略.........
开发者ID:0x24bin,项目名称:winexe-1,代码行数:101,代码来源:smbget.c
示例10: main
int main(int argc, char *argv[])
{
int c;
int profile_only = 0;
bool show_processes, show_locks, show_shares;
poptContext pc;
struct poptOption long_options[] = {
POPT_AUTOHELP
{"processes", 'p', POPT_ARG_NONE, NULL, 'p', "Show processes only" },
{"verbose", 'v', POPT_ARG_NONE, NULL, 'v', "Be verbose" },
{"locks", 'L', POPT_ARG_NONE, NULL, 'L', "Show locks only" },
{"shares", 'S', POPT_ARG_NONE, NULL, 'S', "Show shares only" },
{"user", 'u', POPT_ARG_STRING, &username, 'u', "Switch to user" },
{"brief", 'b', POPT_ARG_NONE, NULL, 'b', "Be brief" },
{"profile", 'P', POPT_ARG_NONE, NULL, 'P', "Do profiling" },
{"profile-rates", 'R', POPT_ARG_NONE, NULL, 'R', "Show call rates" },
{"byterange", 'B', POPT_ARG_NONE, NULL, 'B', "Include byte range locks"},
{"numeric", 'n', POPT_ARG_NONE, NULL, 'n', "Numeric uid/gid"},
POPT_COMMON_SAMBA
POPT_TABLEEND
};
TALLOC_CTX *frame = talloc_stackframe();
int ret = 0;
struct messaging_context *msg_ctx;
sec_init();
load_case_tables();
setup_logging(argv[0], DEBUG_STDERR);
if (getuid() != geteuid()) {
d_printf("smbstatus should not be run setuid\n");
ret = 1;
goto done;
}
pc = poptGetContext(NULL, argc, (const char **) argv, long_options,
POPT_CONTEXT_KEEP_FIRST);
while ((c = poptGetNextOpt(pc)) != -1) {
switch (c) {
case 'p':
processes_only = true;
break;
case 'v':
verbose = true;
break;
case 'L':
locks_only = true;
break;
case 'S':
shares_only = true;
break;
case 'b':
brief = true;
break;
case 'u':
Ucrit_addUid(nametouid(poptGetOptArg(pc)));
break;
case 'P':
case 'R':
profile_only = c;
break;
case 'B':
show_brl = true;
break;
case 'n':
numeric_only = true;
break;
}
}
/* setup the flags based on the possible combincations */
show_processes = !(shares_only || locks_only || profile_only) || processes_only;
show_locks = !(shares_only || processes_only || profile_only) || locks_only;
show_shares = !(processes_only || locks_only || profile_only) || shares_only;
if ( username )
Ucrit_addUid( nametouid(username) );
if (verbose) {
d_printf("using configfile = %s\n", get_dyn_CONFIGFILE());
}
if (!lp_load_initial_only(get_dyn_CONFIGFILE())) {
fprintf(stderr, "Can't load %s - run testparm to debug it\n",
get_dyn_CONFIGFILE());
ret = -1;
goto done;
}
if (lp_clustering()) {
/*
* This implicitly initializes the global ctdbd
* connection, usable by the db_open() calls further
* down.
*/
msg_ctx = messaging_init(NULL, event_context_init(NULL));
//.........这里部分代码省略.........
开发者ID:srimalik,项目名称:samba,代码行数:101,代码来源:status.c
示例11: ParseCommandLine
/**
* Second half of command line parsing. See ParseCommandLineEarly() for
* the first half. Note that render mode must come before resolution flag.
* \param argc number of arguments given
* \param argv string array of the arguments
* \return Returns true on success, false on error */
bool ParseCommandLine(int argc, const char **argv)
{
poptContext poptCon = poptGetContext(NULL, argc, argv, getOptionsTable(), 0);
int iOption;
/* loop through command line */
while ((iOption = poptGetNextOpt(poptCon)) > 0)
{
const char *token;
CLI_OPTIONS option = (CLI_OPTIONS)iOption;
switch (option)
{
case CLI_DEBUG:
case CLI_DEBUGFILE:
case CLI_FLUSHDEBUGSTDERR:
case CLI_CONFIGDIR:
case CLI_HELP:
case CLI_VERSION:
// These options are parsed in ParseCommandLineEarly() already, so ignore them
break;
case CLI_NOASSERT:
kf_NoAssert();
break;
// NOTE: The sole purpose of this is to test the crash handler.
case CLI_CRASH:
CauseCrash = true;
NetPlay.bComms = false;
sstrcpy(aLevelName, "CAM_3A");
SetGameMode(GS_NORMAL);
break;
case CLI_DATADIR:
// retrieve the quoted path name
token = poptGetOptArg(poptCon);
if (token == NULL)
{
qFatal("Unrecognised datadir");
}
sstrcpy(datadir, token);
break;
case CLI_FULLSCREEN:
war_setFullscreen(true);
break;
case CLI_CONNECTTOIP:
//get the ip we want to connect with, and go directly to join screen.
token = poptGetOptArg(poptCon);
if (token == NULL)
{
qFatal("No IP/hostname given");
}
sstrcpy(iptoconnect, token);
break;
case CLI_HOSTLAUNCH:
// go directly to host screen, bypass all others.
hostlaunch = true;
break;
case CLI_GAME:
// retrieve the game name
token = poptGetOptArg(poptCon);
if (token == NULL
|| (strcmp(token, "CAM_1A") && strcmp(token, "CAM_2A") && strcmp(token, "CAM_3A")
&& strcmp(token, "TUTORIAL3") && strcmp(token, "FASTPLAY")))
{
qFatal("The game parameter requires one of the following keywords:"
"CAM_1A, CAM_2A, CAM_3A, TUTORIAL3, or FASTPLAY.");
}
NetPlay.bComms = false;
bMultiPlayer = false;
bMultiMessages = false;
NetPlay.players[0].allocated = true;
if (!strcmp(token, "CAM_1A") || !strcmp(token, "CAM_2A") || !strcmp(token, "CAM_3A"))
{
game.type = CAMPAIGN;
}
else
{
game.type = SKIRMISH; // tutorial is skirmish for some reason
}
sstrcpy(aLevelName, token);
SetGameMode(GS_NORMAL);
break;
case CLI_MOD_GLOB:
{
unsigned int i;
// retrieve the file name
token = poptGetOptArg(poptCon);
if (token == NULL)
{
qFatal("Missing mod name?");
//.........这里部分代码省略.........
开发者ID:Manistein,项目名称:warzone2100,代码行数:101,代码来源:clparse.cpp
示例12: main
int
main(int argc, char **argv)
{
char buf[2048], *s, *string[2], *end[2];
const char *arg;
FILE *fp;
int opt, line, i, flag[2];
poptContext pc = poptGetContext("wildtest", argc, (const char**)argv,
long_options, 0);
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 'e':
arg = poptGetOptArg(pc);
empties_mod = atoi(arg);
if (strchr(arg, 's'))
empty_at_start = 1;
if (strchr(arg, 'e'))
empty_at_end = 1;
if (!explode_mod)
explode_mod = 1024;
break;
default:
fprintf(stderr, "%s: %s\n",
poptBadOption(pc, POPT_BADOPTION_NOALIAS),
poptStrerror(opt));
exit(1);
}
}
if (explode_mod && !empties_mod)
empties_mod = 1024;
argv = (char**)poptGetArgs(pc);
if (!argv || argv[1]) {
fprintf(stderr, "Usage: wildtest [OPTIONS] TESTFILE\n");
exit(1);
}
if ((fp = fopen(*argv, "r")) == NULL) {
fprintf(stderr, "Unable to open %s\n", *argv);
exit(1);
}
line = 0;
while (fgets(buf, sizeof buf, fp)) {
line++;
if (*buf == '#' || *buf == '\n')
continue;
for (s = buf, i = 0; i <= 1; i++) {
if (*s == '1')
flag[i] = 1;
else if (*s == '0')
flag[i] = 0;
else
flag[i] = -1;
if (*++s != ' ' && *s != '\t')
flag[i] = -1;
if (flag[i] < 0) {
fprintf(stderr, "Invalid flag syntax on line %d of %s:\n%s",
line, *argv, buf);
exit(1);
}
while (*++s == ' ' || *s == '\t') {}
}
for (i = 0; i <= 1; i++) {
if (*s == '\'' || *s == '"' || *s == '`') {
char quote = *s++;
string[i] = s;
while (*s && *s != quote) s++;
if (!*s) {
fprintf(stderr, "Unmatched quote on line %d of %s:\n%s",
line, *argv, buf);
exit(1);
}
end[i] = s;
}
else {
if (!*s || *s == '\n') {
fprintf(stderr, "Not enough strings on line %d of %s:\n%s",
line, *argv, buf);
exit(1);
}
string[i] = s;
while (*++s && *s != ' ' && *s != '\t' && *s != '\n') {}
end[i] = s;
}
while (*++s == ' ' || *s == '\t') {}
}
*end[0] = *end[1] = '\0';
run_test(line, flag[0], flag[1], string[0], string[1]);
}
if (!wildmatch_errors)
fputs("No", stdout);
else
printf("%d", wildmatch_errors);
printf(" wildmatch error%s found.\n", wildmatch_errors == 1? "" : "s");
#ifdef COMPARE_WITH_FNMATCH
//.........这里部分代码省略.........
开发者ID:AndyA,项目名称:rsync,代码行数:101,代码来源:wildtest.c
示例13: main
int main(int argc, const char **argv)
{
int resume = 0, recursive = 0;
int c = 0;
int debuglevel = 0;
const char *file = NULL;
char *rcfile = NULL;
char *outputfile = NULL;
struct poptOption long_options[] = {
{"guest", 'a', POPT_ARG_NONE, NULL, 'a', "Work as user guest" },
{"resume", 'r', POPT_ARG_NONE, &resume, 0, "Automatically resume aborted files" },
{"recursive", 'R', POPT_ARG_NONE, &recursive, 0, "Recursively download files" },
{"username", 'u', POPT_ARG_STRING, &username, 'u', "Username to use" },
{"password", 'p', POPT_ARG_STRING, &password, 'p', "Password to use" },
{"workgroup", 'w', POPT_ARG_STRING, &workgroup, 'w', "Workgroup to use (optional)" },
{"nonprompt", 'n', POPT_ARG_NONE, &nonprompt, 'n', "Don't ask anything (non-interactive)" },
{"debuglevel", 'd', POPT_ARG_INT, &debuglevel, 'd', "Debuglevel to use" },
{"outputfile", 'o', POPT_ARG_STRING, &outputfile, 'o', "Write downloaded data to specified file" },
{"dots", 'D', POPT_ARG_NONE, &dots, 'D', "Show dots as progress indication" },
{"quiet", 'q', POPT_ARG_NONE, &quiet, 'q', "Be quiet" },
{"verbose", 'v', POPT_ARG_NONE, &verbose, 'v', "Be verbose" },
{"keep-permissions", 'P', POPT_ARG_NONE, &keep_permissions, 'P', "Keep permissions" },
{"blocksize", 'b', POPT_ARG_INT, &blocksize, 'b', "Change number of bytes in a block"},
{"rcfile", 'f', POPT_ARG_STRING, NULL, 0, "Use specified rc file"},
POPT_AUTOHELP
POPT_TABLEEND
};
poptContext pc;
/* only read rcfile if it exists */
asprintf(&rcfile, "%s/.smbgetrc", getenv("HOME"));
if(access(rcfile, F_OK) == 0) readrcfile(rcfile, long_options);
free(rcfile);
#ifdef SIGWINCH
signal(SIGWINCH, change_columns);
#endif
signal(SIGINT, signal_quit);
signal(SIGTERM, signal_quit);
pc = poptGetContext(argv[0], argc, argv, long_options, 0);
while((c = poptGetNextOpt(pc)) >= 0) {
switch(c) {
case 'f':
readrcfile(poptGetOptArg(pc), long_options);
break;
case 'a':
username = ""; password = "";
break;
}
}
if(outputfile && recursive) {
fprintf(stderr, "The -o and -R options can not be used together.\n");
return 1;
}
if(smbc_init(get_auth_data, debuglevel) < 0) {
fprintf(stderr, "Unable to initialize libsmbclient\n");
return 1;
}
columns = get_num_cols();
total_start_time = time(NULL);
while((file = poptGetArg(pc))) {
if(!recursive) return smb_download_file(file, "", recursive, resume, outputfile);
else return smb_download_dir(file, "", resume);
}
clean_exit();
return 0;
}
开发者ID:cmtsij,项目名称:Vizio_XWR100_GPL,代码行数:76,代码来源:smbget.c
示例14: main
int main( int argc, char *argv[] )
{
TALLOC_CTX *frame = talloc_stackframe();
int opt;
REGF_FILE *infile, *outfile;
REGF_NK_REC *nk;
char *orig_filename, *new_filename;
struct poptOption long_options[] = {
POPT_AUTOHELP
{ "change-sid", 'c', POPT_ARG_STRING, NULL, 'c', "Provides SID to change" },
{ "new-sid", 'n', POPT_ARG_STRING, NULL, 'n', "Provides SID to change to" },
{ "verbose", 'v', POPT_ARG_NONE, &opt_verbose, 'v', "Verbose output" },
POPT_COMMON_SAMBA
POPT_COMMON_VERSION
POPT_TABLEEND
};
poptContext pc;
load_case_tables();
/* setup logging options */
setup_logging( "profiles", DEBUG_STDERR);
pc = poptGetContext("profiles", argc, (const char **)argv, long_options,
POPT_CONTEXT_KEEP_FIRST);
poptSetOtherOptionHelp(pc, "<profilefile>");
/* Now, process the arguments */
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 'c':
change = 1;
if (!string_to_sid(&old_sid, poptGetOptArg(pc))) {
fprintf(stderr, "Argument to -c should be a SID in form of S-1-5-...\n");
poptPrintUsage(pc, stderr, 0);
exit(254);
}
break;
case 'n':
new_val = 1;
if (!string_to_sid(&new_sid, poptGetOptArg(pc))) {
fprintf(stderr, "Argument to -n should be a SID in form of S-1-5-...\n");
poptPrintUsage(pc, stderr, 0);
exit(253);
}
break;
}
}
poptGetArg(pc);
if (!poptPeekArg(pc)) {
poptPrintUsage(pc, stderr, 0);
exit(1);
}
if ((!change && new_val) || (change && !new_val)) {
fprintf(stderr, "You must specify both -c and -n if one or the other is set!\n");
poptPrintUsage(pc, stderr, 0);
exit(252);
}
orig_filename = talloc_strdup(frame, poptPeekArg(pc));
if (!orig_filename) {
exit(ENOMEM);
}
new_filename = talloc_asprintf(frame,
"%s.new",
orig_filename);
if (!new_filename) {
exit(ENOMEM);
}
if (!(infile = regfio_open( orig_filename, O_RDONLY, 0))) {
fprintf( stderr, "Failed to open %s!\n", orig_filename );
fprintf( stderr, "Error was (%s)\n", strerror(errno) );
exit (1);
}
if ( !(outfile = regfio_open( new_filename, (O_RDWR|O_CREAT|O_TRUNC),
(S_IRUSR|S_IWUSR) )) ) {
fprintf( stderr, "Failed to open new file %s!\n", new_filename );
fprintf( stderr, "Error was (%s)\n", strerror(errno) );
exit (1);
}
/* actually do the update now */
if ((nk = regfio_rootkey( infile )) == NULL) {
fprintf(stderr, "Could not get rootkey\n");
exit(3);
}
if (!copy_registry_tree( infile, nk, NULL, outfile, "")) {
fprintf(stderr, "Failed to write updated registry file!\n");
//.........这里部分代码省略.........
开发者ID:rchicoli,项目名称:samba,代码行数:101,代码来源:profiles.c
示例15: cmd_enable_events
/*
* Add event to trace session
*/
int cmd_enable_events(int argc, const char **argv)
{
int opt, ret = CMD_SUCCESS, command_ret = CMD_SUCCESS, success = 1;
static poptContext pc;
char *session_name = NULL;
const char *leftover = NULL;
int event_type = -1;
pc = poptGetContext(NULL, argc, argv, long_options, 0);
poptReadDefaultConfig(pc, 0);
/* Default event type */
opt_event_type = LTTNG_EVENT_ALL;
while ((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case OPT_HELP:
SHOW_HELP();
goto end;
case OPT_TRACEPOINT:
opt_event_type = LTTNG_EVENT_TRACEPOINT;
break;
case OPT_PROBE:
opt_event_type = LTTNG_EVENT_PROBE;
break;
case OPT_USERSPACE_PROBE:
opt_event_type = LTTNG_EVENT_USERSPACE_PROBE;
break;
case OPT_FUNCTION:
opt_event_type = LTTNG_EVENT_FUNCTION;
break;
case OPT_SYSCALL:
opt_event_type = LTTNG_EVENT_SYSCALL;
break;
case OPT_USERSPACE:
opt_userspace = 1;
break;
case OPT_LOGLEVEL:
opt_loglevel_type = LTTNG_EVENT_LOGLEVEL_RANGE;
opt_loglevel = poptGetOptArg(pc);
break;
case OPT_LOGLEVEL_ONLY:
opt_loglevel_type = LTTNG_EVENT_LOGLEVEL_SINGLE;
opt_loglevel = poptGetOptArg(pc);
break;
case OPT_LIST_OPTIONS:
list_cmd_options(stdout, long_options);
goto end;
case OPT_FILTER:
break;
case OPT_EXCLUDE:
break;
default:
ret = CMD_UNDEFINED;
goto end;
}
/* Validate event type. Multiple event type are not supported. */
if (event_type == -1) {
event_type = opt_event_type;
} else {
if (event_type != opt_event_type) {
ERR("Multiple event type not supported.");
ret = CMD_ERROR;
goto end;
}
}
}
ret = print_missing_or_multiple_domains(
opt_kernel + opt_userspace + opt_jul + opt_log4j + opt_python);
if (ret) {
ret = CMD_ERROR;
goto end;
}
/* Mi check */
if (lttng_opt_mi) {
writer = mi_lttng_writer_create(fileno(stdout), lttng_opt_mi);
if (!writer) {
ret = -LTTNG_ERR_NOMEM;
goto end;
}
/* Open command element */
ret = mi_lttng_writer_command_open(writer,
mi_lttng_element_command_enable_event);
if (ret) {
ret = CMD_ERROR;
goto end;
}
/* Open output element */
ret = mi_lttng_writer_open_element(writer,
mi_lttng_element_command_output);
if (ret) {
ret = CMD_ERROR;
//.........这里部分代码省略.........
开发者ID:lttng,项目名称:lttng-tools,代码行数:101,代码来源:enable_events.c
示例16: void
/**
process command line options
*/
struct ldb_cmdline *ldb_cmdline_process(struct ldb_context *ldb,
int argc, const char **argv,
void (*usage)(struct ldb_context *))
{
struct ldb_cmdline *ret=NULL;
poptContext pc;
int num_options = 0;
int opt;
unsigned int flags = 0;
int rc;
struct poptOption **popt_options;
/* make the ldb utilities line buffered */
setlinebuf(stdout);
ret = talloc_zero(ldb, struct ldb_cmdline);
if (ret == NULL) {
fprintf(stderr, "Out of memory!\n");
goto failed;
}
options = *ret;
/* pull in URL */
options.url = getenv("LDB_URL");
/* and editor (used by ldbedit) */
options.editor = getenv("VISUAL");
if (!options.editor) {
options.editor = getenv("EDITOR");
}
if (!options.editor) {
options.editor = "vi";
}
options.scope = LDB_SCOPE_DEFAULT;
popt_options = ldb_module_popt_options(ldb);
(*popt_options) = builtin_popt_options;
rc = ldb_modules_hook(ldb, LDB_MODULE_HOOK_CMDLINE_OPTIONS);
if (rc != LDB_SUCCESS) {
fprintf(stderr, "ldb: failed to run command line hooks : %s\n", ldb_strerror(rc));
goto failed;
}
pc = poptGetContext(argv[0], argc, argv, *popt_options,
POPT_CONTEXT_KEEP_FIRST);
while((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 's': {
const char *arg = poptGetOptArg(pc);
if (strcmp(arg, "base") == 0) {
options.scope = LDB_SCOPE_BASE;
} else if (strcmp(arg, "sub") == 0) {
options.scope = LDB_SCOPE_SUBTREE;
} else if (strcmp(arg, "one") == 0) {
options.scope = LDB_SCOPE_ONELEVEL;
} else {
fprintf(stderr, "Invalid scope '%s'\n", arg);
goto failed;
}
break;
}
case 'v':
options.verbose++;
break;
case 'o':
options.options = talloc_realloc(ret, options.options,
const char *, num_options+3);
if (options.options == NULL) {
fprintf(stderr, "Out of memory!\n");
goto failed;
}
options.options[num_options] = poptGetOptArg(pc);
options.options[num_options+1] = NULL;
num_options++;
break;
case 'c': {
const char *cs = poptGetOptArg(pc);
const char *p;
for (p = cs; p != NULL; ) {
const char *t, *c;
t = strchr(p, ',');
if (t == NULL) {
c = talloc_strdup(options.controls, p);
p = NULL;
} else {
c = talloc_strndup(options.controls, p, t-p);
p = t + 1;
}
//.........这里部分代码省略.........
开发者ID:DanilKorotenko,项目名称:samba,代码行数:101,代码来源:cmdline.c
示例17: main
/****************************************************************************
main program
****************************************************************************/
int main(int argc, const char **argv)
{
int opt,i;
char *p;
int rc = 0;
int argc_new = 0;
const char ** argv_new;
poptContext pc;
struct poptOption long_options[] = {
{"help", 'h', POPT_ARG_NONE, 0, 'h'},
{"workgroup", 'w', POPT_ARG_STRING, &opt_target_workgroup},
{"user", 'U', POPT_ARG_STRING, &opt_user_name, 'U'},
{"ipaddress", 'I', POPT_ARG_STRING, 0,'I'},
{"port", 'p', POPT_ARG_INT, &opt_port},
{"myname", 'n', POPT_ARG_STRING, &opt_requester_name},
{"server", 'S', POPT_ARG_STRING, &opt_host},
{"container", 'c', POPT_ARG_STRING, &opt_container},
{"comment", 'C', POPT_ARG_STRING, &opt_comment},
{"maxusers", 'M', POPT_ARG_INT, &opt_maxusers},
{"flags", 'F', POPT_ARG_INT, &opt_flags},
{"long", 'l', POPT_ARG_NONE, &opt_long_list_entries},
{"reboot", 'r', POPT_ARG_NONE, &opt_reboot},
{"force", 'f', POPT_ARG_NONE, &opt_force},
{"stdin", 'i', POPT_ARG_NONE, &opt_stdin},
{"timeout", 't', POPT_ARG_INT, &opt_timeout},
{"machine-pass",'P', POPT_ARG_NONE, &opt_machine_pass},
{"myworkgroup", 'W', POPT_ARG_STRING, &opt_workgroup},
{"verbose", 'v', POPT_ARG_NONE, &opt_verbose},
/* Options for 'net groupmap set' */
{"local", 'L', POPT_ARG_NONE, &opt_localgroup},
{"domain", 'D', POPT_ARG_NONE, &opt_domaingroup},
{"ntname", 'N', POPT_ARG_STRING, &opt_newntname},
{"rid", 'R', POPT_ARG_INT, &opt_rid},
/* Options for 'net rpc share migrate' */
{"acls", 0, POPT_ARG_NONE, &opt_acls},
{"attrs", 0, POPT_ARG_NONE, &opt_attrs},
{"timestamps", 0, POPT_ARG_NONE, &opt_timestamps},
{"exclude", 'e', POPT_ARG_STRING, &opt_exclude},
{"destination", 0, POPT_ARG_STRING, &opt_destination},
{"tallocreport", 0, POPT_ARG_NONE, &do_talloc_report},
POPT_COMMON_SAMBA
{ 0, 0, 0, 0}
};
zero_ip(&opt_dest_ip);
load_case_tables();
/* set default debug level to 0 regardless of what smb.conf sets */
DEBUGLEVEL_CLASS[DBGC_ALL] = 0;
dbf = x_stderr;
pc = poptGetContext(NULL, argc, (const char **) argv, long_options,
POPT_CONTEXT_KEEP_FIRST);
while((opt = poptGetNextOpt(pc)) != -1) {
switch (opt) {
case 'h':
net_help(argc, argv);
exit(0);
break;
case 'I':
opt_dest_ip = *interpret_addr2(poptGetOptArg(pc));
if (is_zero_ip(opt_dest_ip))
d_fprintf(stderr, "\nInvalid ip address specified\n");
else
opt_have_ip = True;
break;
case 'U':
opt_user_specified = True;
opt_user_name = SMB_STRDUP(opt_user_name);
p = strchr(opt_user_name,'%');
if (p) {
*p = 0;
opt_password = p+1;
}
break;
default:
d_fprintf(stderr, "\nInvalid option %s: %s\n",
poptBadOption(pc, 0), poptStrerror(opt));
net_help(argc, argv);
exit(1);
}
}
/*
* Don't load debug level from smb.conf. It should be
* set by cmdline arg or remain default (0)
*/
AllowDebugChange = False;
lp_load(dyn_CONFIGFILE,True,False,False,True);
argv_new = (const char **)poptGetArgs(pc);
argc_new = argc;
//.........这里
|
请发表评论