/////////////////////////////////////////////////////////////////////
dup()
/////////////////////////////////////////////////////////////////////
#include<stdio.h>
#include<unistd.h>
int main()
{
int fd , newfd;
close(STDOUT_FILENO);
fd = creat("dup_result",0644);
newfd = dup(fd);
printf("hello world\n");
printf(" fd : %d\n" , fd);
printf("newfd : %d\n" , newfd);
return 0;
}
/*
파일디스크립터 리턴값은
작은 값부터 할당되므로
지금 의도하는 값을 결과를 얻어내기 위해서는
STDOUT_FILENO 의 디스크립터 값을 해제해 주어야 한다.
*/
/////////////////////////////////////////////////////////////////////
dup2()
/////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int fd;
fd = creat("dup2_result", 0644);
dup2(fd, STDOUT_FILENO);
close(fd);
printf("hello world\n");
return 0;
}
----------------------------
0 stdin
1 stdout
2 stderr
3 fd
4 newfd
----------------------------
dup()
/////////////////////////////////////////////////////////////////////
#include<stdio.h>
#include<unistd.h>
int main()
{
int fd , newfd;
close(STDOUT_FILENO);
fd = creat("dup_result",0644);
newfd = dup(fd);
printf("hello world\n");
printf(" fd : %d\n" , fd);
printf("newfd : %d\n" , newfd);
return 0;
}
/*
파일디스크립터 리턴값은
작은 값부터 할당되므로
지금 의도하는 값을 결과를 얻어내기 위해서는
STDOUT_FILENO 의 디스크립터 값을 해제해 주어야 한다.
*/
/////////////////////////////////////////////////////////////////////
dup2()
/////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int fd;
fd = creat("dup2_result", 0644);
dup2(fd, STDOUT_FILENO);
close(fd);
printf("hello world\n");
return 0;
}
----------------------------
0 stdin
1 stdout
2 stderr
3 fd
4 newfd
----------------------------