Scott David Daniels wrote: > [EMAIL PROTECTED] wrote: > > Hi, > > > > I'm writing a program which uses an external module written in C > > and calls a function provided by the module to do my job. The > > function produces a lot of output to the stdout. > > > > Is there a way to suppress the output produced by the function and > > hence make my program run faster? > > > It's too complicated for me to modify the source code and recompile > > the external module. > This would be the best method, you could define printf and fprintf > macros that would eliminate the output code altogether. > > > Any hints will be greatly appreciated. > Well, it will depend on your OS, but the trick is to essentially > replace the C stdout channel with a file which has been opened to > write to "/dev/null" or "NUL.txt" (unix and Windows respectively). > You'll need to first copy the channel to another so you can use > it again after the function is done (a system call). Next do the > raw open (which should get the available channel), and the C stdout > stuff is successfully redirected. Once done w/ your function, > close your new stdout and copy the channel back. > In Windows the null device is, strictly speaking, "nul" or "nul:", not "nul.txt", but the latter appears to work too.
-- http://mail.python.org/mailman/listinfo/python-list