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