Added more syscalls
This commit is contained in:
31
examples/shell/shell.q
Normal file
31
examples/shell/shell.q
Normal file
@ -0,0 +1,31 @@
|
||||
import mem
|
||||
import sys
|
||||
|
||||
main() {
|
||||
length := 256
|
||||
command := mem.alloc(length)
|
||||
argv := mem.alloc(1)
|
||||
envp := mem.alloc(1)
|
||||
info := mem.alloc(24)
|
||||
|
||||
loop {
|
||||
sys.write(1, "$ ", 2)
|
||||
n := sys.read(0, command, length)
|
||||
|
||||
if n <= 0 {
|
||||
return
|
||||
}
|
||||
|
||||
// TODO: Indexing by register
|
||||
command[7] = '\0'
|
||||
|
||||
pid := sys.fork()
|
||||
|
||||
if pid == 0 {
|
||||
sys.execve(command, argv, envp)
|
||||
return
|
||||
}
|
||||
|
||||
sys.waitid(0, pid, info, 4)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user