あー

空白がつくのって
"a.out params > text.txt"
みたいなときに " text.txt"がredirectにはいるってこと?

VC++でコンパイルしたからGCCでは挙動違うのかな?

sscanfの処理を
sscanf( command, "%255[^>]%*[> \t]%19s", cmd, redirect );
って修正してもだめ?