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

おすすめ記事