Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: xemnas en 12 Enero 2014, 15:03 PM

Título: ayuda codigo c
Publicado por: xemnas en 12 Enero 2014, 15:03 PM
me estoy leyendo un pdf de llamadas a sistema pero no logro entender el siguiente codigo, si alguien me puede explicar que hace se lo agradecería =).

#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
pid_t childpid;
int status, exit_code, x;

exit_code = EXIT_SUCCESS;

if (argc < 2)
{
printf("Usage: %s command args\n", argv[0]);
exit_code = EXIT_FAILURE;
}
else
{
switch (childpid = fork())
{
case -1:
perror("Could not fork\n");
exit_code = EXIT_FAILURE;
break;
case 0:
if (execvp(argv[1], &argv[1]) < 0)
{
perror("Could not execute the command\n");
exit_code = EXIT_FAILURE;
break;
}
Título: Re: ayuda codigo c
Publicado por: rir3760 en 12 Enero 2014, 18:53 PM
Si estas leyendo un manual este debería indicar antes o después del ejemplo la intención y operación de las llamadas empezando por fork (http://linux.die.net/man/2/fork).

En cuanto al programa este solo verifica si se pasa al menos un argumento, si es así llama primero a fork para crear un proceso hijo y a continuación ejecuta el programa indicado mediante execvp.

Un saludo