教育目的のこの小さなコードに問題があります。それがどのように機能するのか理解できません。
#include <stdio.h>
#include <fcntl.h>
#define FNAME "info.txt"
#define STDIN 0
int main(){
int fd;
fd = open(FNAME, O_RDONLY);
close(STDIN); //entry 0 on FDT is now free
dup(fd); //fd duplicate is now stored at entry 0
execlp("more","more",0);
}
このプログラムを起動すると、ターミナルにファイル「info.txt」の内容が出力されます。理由がわからない!「more」とSTDIN(キーボードまたはファイル)の間のリンクはどこにありますか?
引数なしでファイルのリダイレクトなしでもっと使用すると、ヘルプ画面が表示されるだけなのに、リダイレクトではファイルが入力として使用されるのはなぜですか?