dll - Standard input/output in C# process -



dll - Standard input/output in C# process -

my application app using other application subapp. when app needs subapp creating process subapp, putting info subapp stdin , reading subapp stdout.

the problem subapp using library writes stdout.

fragment of subapp code:

outsidelibrary.dosomeinitialization(); // <-- writes stdout stream input = console.openstandardinput(); stream output = console.openstandardoutput(); info = (dataformat)formatter.deserialize(input); //do job formatter.serialize(output, result);

is there way prevent code don't have writing stdout?

assuming want disable 3rd party component output , have command on rest of subapp code can next trick: redirect standard output null @ application bootstrap. when need write stdout temporary set standard output normal, write , set null again.

using system; using system.collections.generic; using system.linq; using system.text; using system.io; namespace stdio { class programme { static void main(string[] args) { console.setout(system.io.textwriter.null); console.writeline("this go > null"); writeoutput("this written standard output"); console.writeline("this go > null"); console.readkey(); } static void writeoutput(string somestring) { console.setout(console.out); stream output = console.openstandardoutput(); streamwriter sw = new streamwriter(output); sw.write(somestring); sw.flush(); sw.close(); output.close(); console.setout(system.io.textwriter.null); } } }

c# dll process stdout stdin

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -