Beispiel #1
0
void
__start(void)
{
	int argc;
	char *ro_args, *args, **argv;

	/* Clear BSS */
	memset(edata, 0, end - edata);

	/* Define heap. */
	setheap(end, (void *)(HIMEM - 0x1000));

	ro_args = os_get_env(NULL, NULL);

	args = alloc(strlen(ro_args)+10);	/* some spare extra */
	strcpy(args, ro_args);

	argc = splitargs(args, 0, NULL);
	argv = alloc(argc * sizeof(*argv));
	if (argv == NULL)
		panic("alloc of argv failed");
	argc = splitargs(args, 1, argv);

	/* start real main() */
	os_exit(NULL, main(argc, argv));
}
Beispiel #2
0
static BOOLEAN is_redirecting_stdin(void)
{
	BOOLEAN redirecting_stdin = FALSE;
	char *cp = NULL;

	cp = os_get_env("HTTP_HOST");
	if (cp)
	{
		memFree(cp, "cp");
		return(FALSE);
	}

	if (isatty(fileno(stdin)))
		return(FALSE);
	else
		return(TRUE);

	return(redirecting_stdin);
}