On 05/10/14 22:24, MarisaLovesUsAll via Digitalmars-d-learn wrote: > I sometimes got a useless messages in stdout from SDL_Image > library, and I want to temporary silence it. How do I do?
One way would be something like: import std.stdio; void writeOutput () { static c = 1; printf("%d\n", c++); } void main() { writeOutput(); { auto ex = PushFD!1("/dev/null".ptr); writeOutput(); } writeOutput(); } struct PushFD(int fd) { import core.sys.posix.fcntl, core.sys.posix.unistd; int old; this(const char* fn) { // old = dup(fd); auto nfd = open(fn, O_RDWR); dup2(nfd, fd); close(nfd); } ~this() { dup2(old, fd); close(old); } } // In real code you'll want to check for errors from dup/dup2/open/close. artur