gpt4 book ai didi

c - 为什么 open 使我的文件描述符为 0?

转载 作者:行者123 更新时间:2023-12-02 05:25:03 25 4
gpt4 key购买 nike

我正在开发一个使用管道和 fork 的程序,需要将写入端更改为输出文件。但是当我打开一个文件时,文件描述符是 0,这通常是标准输入,但我认为这是我的一些问题的原因。这是我的代码

if (outputfd = open("file", O_RDWR | O_CREAT | O_TRUNC) == -1) 
{
// open failed
}

有人可以告诉我为什么它是 0 吗?或者如何解决?

最佳答案

您的代码行中的

outputfd 不是输出文件描述符,而是等于 FALSE (0)。这是因为open返回的文件描述符不是== -1

它应该是:

outputfd = open("file", O_RDWR | O_CREAT | O_TRUNC);
if (outputfd < 0)
{
// error handling code
}

或者它应该是:

if ( ( outputfd = open("file", O_RDWR | O_CREAT | O_TRUNC) ) == -1)
{
// error handling code
}

请注意,这需要 3 个额外的括号 - 一个右括号和两个左括号。

关于c - 为什么 open 使我的文件描述符为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com