使用参数+ stdout + stderr

时间:2017-08-01 17:04:07

标签: c++ mfc command-line-arguments stdout stderr

我正在尝试使用命令行中的输入参数调用我的MFC应用程序。

我希望应用程序将输出打印到文件并将错误打印到另一个文件。

所以除了输入参数之外,我还是传递了1>out.txt 2>err.txt

总的来说,命令行看起来像:

start /w app.exe arg1 arg2 arg3 1>out.txt 2>err.txt

它似乎确实有效,将结果写入两个文件。

然而,在某些时候它停止了,所以我猜我做错了。

这是我的代码:

标题文件:

class CMyWinApp : public CWinApp
{
public:
    BOOL InitInstance();
};

源文件:

CMyWinApp myWinApp;

BOOL CMyWinApp::InitInstance()
{
    CWinApp::InitInstance();       
    int iNumOfArgs;
    LPWSTR* pArgs = CommandLineToArgvW(GetCommandLine(),&iNumOfArgs);
    for (int iArgNum=1; iArgNum<iNumOfArgs; iArgNum++)
    {
        fprintf(stdout,"%ls\n",pArgs[iArgNum]);
        fprintf(stderr,"%ls\n",pArgs[iArgNum]);
    }
}

我到底错在了什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

好的,问题解决了:

我在某个时候添加了start /w,以强制等待完成。

由于某种原因,结果是没有任何内容写入两个目标文件。