首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dup不重定向

dup不重定向
EN

Stack Overflow用户
提问于 2014-03-01 21:33:48
回答 1查看 139关注 0票数 1

我正在编写代码将stdout重定向到文件(例如ls被返回到一个文件的结果),而dup2()函数不会重定向我的输出。下面是我的代码:

代码语言:javascript
复制
void testDup()
{
    int newft;
    if(newfd = creat("fout.txt", O_TRUNC|O_WRONLY) == -1)
    {
        cout << "Open failed"<< endl;
        exit(1);
    }
    dup2(newfd, 1);
    cout << "this should be in the new file" < endl;
}

但这是行不通的。我只是把ls输出到我的终端窗口。我已经采取步骤检查dup2()是否确实返回了1,而不是-1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-01 21:36:42

您需要在赋值周围加上一对括号,否则它是布尔表达式的赋值(如果文件确实可以打开,则返回0):

代码语言:javascript
复制
if ((newfd = creat("fout.txt", O_TRUNC | O_WRONLY)) == -1)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22120661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档