ayuda codigo c

Iniciado por xemnas, 12 Enero 2014, 15:03 PM

0 Miembros y 1 Visitante están viendo este tema.

xemnas

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;
}

rir3760

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.

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language