
EnzoFerber
(usa FreeBSD)
Enviado em 20/06/2006 - 20:37h
Olá,
Estou aprendendo a usar a função dup2(). Mas tenho uma dúvida que não quer calar:
Quando faço o seguinte:
fd = socket(AF_INET, SOCK_STREAM, 0);
...
fd1 = accept(fd, (struct sockaddr*)&server, &t);
dup2(fd1, 0);
dup2(fd1, 1);
dup2(fd1, 2);
printf("Viva o linux");
...
Ai esse programa está escutando na porta TCP 23 (telnet). Quando digito:
#telnet <host>
aparece a mensagem:
"Viva o linux"
Bingo! é o que eu queria!
Mas se no fonte eu colocar o execve() ao invés de printf(), no telnet ele não me retorna um shell... Alguem sabe do porque?
Procurei no google igual um condenado, baixei mais de 10 exemplos, e nenhum funcionou... alguem ai por favor, me explique.. :)
Agradeço desde já,
Slackware_10