mirror of
https://gitlab.redox-os.org/redox-os/redox.git
synced 2026-06-26 06:44:18 +08:00
Allow init to change stdio
This commit is contained in:
parent
2868b3098a
commit
c81388d929
@ -1,3 +1,6 @@
|
||||
[package]
|
||||
name = "init"
|
||||
version = "0.1.0"
|
||||
|
||||
[dependencies]
|
||||
syscall = { path = "../../syscall" }
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
extern crate syscall;
|
||||
|
||||
use std::env;
|
||||
use std::fs::File;
|
||||
use std::io::{BufRead, BufReader, Result};
|
||||
@ -50,6 +52,17 @@ pub fn run(file: &str) -> Result<()> {
|
||||
} else {
|
||||
println!("init: failed to run: no argument");
|
||||
},
|
||||
"stdio" => if let Some(stdio) = args.next() {
|
||||
let _ = syscall::close(2);
|
||||
let _ = syscall::close(1);
|
||||
let _ = syscall::close(0);
|
||||
|
||||
let _ = syscall::open(&stdio, syscall::flag::O_RDWR);
|
||||
let _ = syscall::open(&stdio, syscall::flag::O_RDWR);
|
||||
let _ = syscall::open(&stdio, syscall::flag::O_RDWR);
|
||||
} else {
|
||||
println!("init: failed to set stdio: no argument");
|
||||
},
|
||||
_ => {
|
||||
let mut command = Command::new(cmd);
|
||||
for arg in args {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user