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));
}

관련 정보