Consider the following code.
On Windows I get an extra \0
in the result of the completed task, but on Linux I don't. Can someone explain why?
StreamReader _processOutput;
#if (WINDOWS)
var pipe = new NamedPipeClientStream(".", pipeFile, PipeDirection.In);
await pipe.ConnectAsync();
#else
var pipe = File.OpenRead(pipeFile);
#endif
_processOutput = new StreamReader(pipe);
var task = _processOutput.ReadLineAsync();
#if (WINDOWS)
var result = task.Result.Replace("\0", ""); // <<<<< why do I get \0 ?
#else
var result = task.Result;
#endif