greatly improve freopen behavior