Afaik, pd.tk does not write to stderr, so, there is no point in doing this. What do you want to redirect instead?
It does write somethings to stderr
hans@palatschinken.local:~/Desktop > grep stderr ~/code/pure-data/pd- MAIN/src/u_main.tk puts stderr {setting pd_guidir to '.'} # puts stderr [bind all] puts stderr [format "open %s" $filename] puts stderr "menu_doc_browser non-directory $dir\n" puts stderr "doc_make_listbox: error listing $dir\n" puts stderr "Could not open $pd_guidir/ $subdir/$file\n" [snip]
Basically, the idea is to have every debug message go to the Pd window.
then you should use the post() function (in C), wrapped by poststring2 in tcl, wrapped again by pd::post in pdlib.tcl.
if the user wants stuff printed to stderr, pd has a -stderr commandline switch, and all it's handled by post.
bye