
ede_fig
(usa Ubuntu)
Enviado em 01/12/2009 - 08:45h
Caros amigos sou totalmente iniciante no Linux, tenho o seguinte programa:
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#define MAX_ARQS 64
int daemon_init_simplificado(const char* exec);
int main(int argc, char* argv[])
{
int res;
if (argc < 2) {
printf("USO: %s <comando>\n",argv[0]);
return 1;
}
res = daemon_init_simplificado(argv[1]);
return 0;
}
int daemon_init_simplificado(const char* exec)
{
int i;
pid_t pid;
pid = fork();
if (pid != 0)
exit(0);
chdir("/");
for (i=0; i<MAX_ARQS; i++)
close(i);
open("/dev/null",O_RDONLY);
open("/dev/null",O_RDWR);
open("/dev/null",O_RDWR);
execl(exec,NULL);
return -1;
}
Alguem poderia me ajudar a enteder oque acontece, qual a explicação pois qual compilo e tento rodar o programa aparece a seguinte frase
./daemon <comando>
E pelo que vejo nada aocntece.