Hi,

I'm trying to port a program from .NET/windows to Mono/linux, but I'm
running into some trouble with the System.Diagnostics.Process class.  The
program uses the Process class to invoke a python script, send data to its
stdin, and read data back from its stdout.  The mechanism is shown in the
following code:

        class Program
        {
                static void Main(string[] args)
                {
                        var startInfo = new ProcessStartInfo("python");
                        startInfo.Arguments = "./hello.py";
                        startInfo.UseShellExecute = false;
                        startInfo.RedirectStandardInput = true;
                        startInfo.RedirectStandardOutput = true;

                        var p = Process.Start(startInfo);
                        if (p.HasExited) // verify it actually started
                                return;

                        var names = new[] { "Bobby", "Billy", "Jenny", "June" };
                        foreach (var name in names)
                        {
                                p.StandardInput.WriteLine(name);

                                var result = p.StandardOutput.ReadLine();
                                Console.WriteLine("Result: {0}", result);
                        }

                        p.Kill();
                }
        }

and the python script is this:

#!/usr/bin/python
line = raw_input()
while len(line) > 0:
    print("Hello " + line)
    line = raw_input()

This all works fine on .NET/Windows but on Mono/Linux it hangs on the call
to p.StandardOutput.ReadLine(). Any idea what's going on here? I don't have
much experience with Linux.

ps. I also tried changing the python script to use sys.stdin and sys.stdout
instead of raw_input and print, but this made no difference.



--
View this message in context: 
http://mono.1490590.n4.nabble.com/Process-StandardOutput-Readline-hangs-on-Mono-but-not-on-NET-tp4658454.html
Sent from the Mono - General mailing list archive at Nabble.com.
_______________________________________________
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to