C/Visual C - Ayuda con codigo en C

   
Vista:

Ayuda con codigo en C

Publicado por Daniel (1 intervención) el 14/01/2015 20:03:09
¿Alguien puede echarme un cable con este codigo?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <sys/types.h>
#include<sys/wait.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
int main(int argc, char *argv[]){
   //char *tabla[argc];
   pid_t id;
 
   id = fork();
   if (id == -1) {
      printf("Error en la creación del proceso\n");
      exit (-1);
   }
   if (id == 0) {	/* Proceso hijo */
      execv(argv[0], argv);
      //exit(0);
   } else {
      //wait(0);
   }
   sleep(1);
   exit(0);
}


Solamente hay que introducir un comando por argumento y el programa principal creara un hijo para ejecutarlo.El problema es que no se me ejecuta el programa. Hay que tener en cuenta que el comando puede tener más de un argumento.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con codigo en C

Publicado por Chema (187 intervenciones) el 15/01/2015 10:03:26
El programa se llama a si mismo.
execv(argv[0], argv).

1
2
the value of argc is greater than zero, the string pointed to by argv[0] represents the program name;
argv[0][0] shall be the null character if the program name is not available from the host environment.

Revisa la documentación de fork(), el ejemplo que expones es muy malo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar