(************************************************************ pipe.ml Created : Mon Jun 17 00:38:35 2002 Last modified: Fri Jun 21 09:42:54 2002 Compile: make # ************************************************************) let read_pipe ,write_pipe = Unix.pipe () in let buffer = String.create 64 in if Unix.fork () = 0 then begin let content = "I'm child\n" in let _ = print_string "Now writing\n"; flush stdout in let size = String.length content in let _ = Unix.write write_pipe content 0 size in begin print_string "sleeping\n"; flush stdout; Unix.sleep 10; print_string "good moring!!\n"; flush stdout; end end else begin let stdout_descr = Unix.descr_of_out_channel stdout in while (String.sub (let _ = Unix.read read_pipe buffer 0 1 in buffer) 0 1) <> "\n" do let _ = Unix.write stdout_descr buffer 0 1 in () done; print_string "\n"; end