Пример #1
0
static void
makeargv(char *argvstr)
{
	char **argv;
	int nargs;

	assert(rumprun_cmdline_argc == 0 && rumprun_cmdline_argv == NULL);

	rumprun_parseargs(argvstr, &nargs, 0);
	argv = malloc(sizeof(*argv) * (nargs+2));
	if (argv == NULL)
		errx(1, "could not allocate argv");

	rumprun_parseargs(argvstr, &nargs, argv);
	argv[nargs] = argv[nargs+1] = '\0';
	rumprun_cmdline_argv = argv;
	rumprun_cmdline_argc = nargs;
}
Пример #2
0
static void
makeargv(char *argvstr)
{
	struct rumprun_exec *rre;
	char **argv;
	int nargs;

	rumprun_parseargs(argvstr, &nargs, 0);
	rre = malloc(sizeof(*rre) + (nargs+1) * sizeof(*argv));
	if (rre == NULL)
		err(1, "could not allocate rre");

	rumprun_parseargs(argvstr, &nargs, rre->rre_argv);
	rre->rre_argv[nargs] = NULL;
	rre->rre_flags = 0;
	rre->rre_argc = nargs;

	TAILQ_INSERT_TAIL(&rumprun_execs, rre, rre_entries);
}