git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1258 a95241bf-73f2-0310-859d-f6bbb57e9c96
64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
/*
|
|
** Copyright 2001, Travis Geiselbrecht. All rights reserved.
|
|
** Distributed under the terms of the NewOS License.
|
|
*/
|
|
#include <unistd.h>
|
|
#include <stdio.h>
|
|
#include <syscalls.h>
|
|
#include <fcntl.h>
|
|
|
|
static void setup_io()
|
|
{
|
|
int i;
|
|
|
|
for(i= 0; i< 256; i++) {
|
|
close(i);
|
|
}
|
|
|
|
/* XXX - open currently ignores these flags, but they
|
|
* should be checked once it doesn't :)
|
|
* Is STDERR really O_WRONLY?
|
|
*/
|
|
open("/dev/console", O_RDONLY, 0); /* stdin */
|
|
open("/dev/console", O_WRONLY, 0); /* stdout */
|
|
open("/dev/console", O_WRONLY, 0); /* stderr */
|
|
}
|
|
|
|
int main()
|
|
{
|
|
setup_io();
|
|
|
|
printf("Welcome to OpenBeOS!\n");
|
|
|
|
if(1) {
|
|
team_id pid;
|
|
|
|
pid = sys_create_team("/boot/bin/fortune", "/boot/bin/fortune", NULL, 0, NULL, 0, 5);
|
|
if (pid >= 0) {
|
|
int retcode;
|
|
sys_wait_on_team(pid, &retcode);
|
|
} else {
|
|
printf("Failed to create a team for fortune.\n");
|
|
}
|
|
}
|
|
|
|
|
|
while(1) {
|
|
team_id pid;
|
|
|
|
pid = sys_create_team("/boot/bin/shell", "/boot/bin/shell", NULL, 0, NULL, 0, 5);
|
|
if(pid >= 0) {
|
|
int retcode;
|
|
printf("init: spawned shell, pid 0x%lx\n", pid);
|
|
sys_wait_on_team(pid, &retcode);
|
|
printf("init: shell exited with return code %d\n", retcode);
|
|
} else {
|
|
printf("Failed to start a shell :(\n");
|
|
}
|
|
}
|
|
|
|
printf("init exiting\n");
|
|
|
|
return 0;
|
|
}
|