For example, this program prints "1\n3" on unix, and "1\n2" on windows:
use std::io::{process, Command};
use std::os;
fn main() {
    let len = os::args().len();
    println!("{}", len);
    if len == 1 {
        Command::new(os::self_exe_name().unwrap())
                .arg("foo").arg("")
                .stdout(process::InheritFd(1))
                .spawn().unwrap();
    }
}