stdout(1) 文件描述符关闭后可以重新使用吗?

stdout(1) 文件描述符关闭后可以重新使用吗?

我首先调用 close(1),然后使用 open() 系统调用打开文件。

open() 是否有可能返回 1,因为它将使用最低的空闲文件描述符?

我读过 open() 使用最低的可用文件描述符这里

答案1

是的,fd 1 将被重新使用。尝试这个:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv) {
    close(1);
    fprintf(stderr, "%d\n", open("/dev/null", O_RDONLY));
}

相关内容