Пример #1
0
int main(){
    int fd;

    fd = dup2(1, 9);
    printf("The result by dup2 is %d\n", fd);
    fd = mydup2(2, 5);
    printf("The result by mydup2 is %d\n", fd);

    return 0;

}
Пример #2
0
int main(void)
{
	int fd = -1;
	fd = mydup2(0,10);
	if(fd < 0) {
		perror("mydup2");
		return -1;
	}

	printf("fd = %d\n",fd);
	return 0;
}
Пример #3
0
int
main(int argc, char *argv[]) {
    int fd1, fd2;
    if (argc != 2) {
        err_quit("Usage: %s file", argv[0]);
    }
    if ((fd1 = open(argv[1], O_RDONLY)) < 0) {
        err_sys("Can't open file `%s`", argv[1]);
    }

    fd2 = mydup2(fd1, 42);

    lseek(fd1, 0, SEEK_END);

    check_fd(fd1);
    check_fd(fd2);
}
Пример #4
0
int mydup2(int oldfd, int newfd)
{
	int tfd;
	if (newfd < 0)
		return -1;
	if (newfd == oldfd)
		return newfd;
	close(newfd);
	if ((tfd == dup(oldfd)) == newfd)
	{
		return newfd;
	} else {
		mydup2(oldfd, newfd);
		clsose(tfd);
	}
	return newfd;
}
Пример #5
0
int
main(void){
    printf("%d\n", mydup2(0, 99));
   // printf("%d, %d, %d", mydup2(5, 10), mydup2(5, 4), mydup2(5, 1));
   return 1;
}