somega Asked: 2022-05-02 02:47:50 +0800 CST2022-05-02 02:47:50 +0800 CST 2022-05-02 02:47:50 +0800 CST 关闭后可以重新使用stdout(1)文件描述符吗? 772 我首先调用 close(1),然后使用 open() 系统调用打开一个文件。 open() 是否有可能返回 1,因为它将使用最低的空闲文件描述符? 我读过 open() 在这里使用最低的免费文件描述符。 file-descriptors system-calls 1 个回答 Voted Best Answer Stephen Kitt 2022-05-02T03:25:10+08:002022-05-02T03:25:10+08:00 是的,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)); }
是的,fd 1 将被重新使用。尝试这个: