개요

standard I/O 스트림을 fork 후에 그러나 exec전에 바꾸는 것을 말한다.

ls > x.ls

위의 bash프로그램은 ls의 결과값을 standard output이 아니라 x.ls 라는 파일에 dump시키게 된다. 이때 사용하는 > 기호를 dup이라고 한다.

dup(int fd)

새로운 파일 서술자를 반환하지만, 숫자만 다를뿐 원래의 서술자와 복제된 서술자는 모두 완벽히 같은 파일을 가르키게 된다. dup를 통해서 리턴되는 값은 가용 가능한 file descriptor중에서 제일 작은 값이 리턴된다.

dup2(int fin, int fout)

fout파일 확장자를 fin으로 바꾼다. 즉 fout으로 향하는 파일 입출력 명령을 fin에 대한 파일 입출력으로 바꾸게 한다.

int dup2(fileID, stdout); /*copy fileID to stdout */ return -1 on error

위의 파일 확장자는 모든 stdout으로 향하는 출력을 fileID으로 향하게 한다.