Thread View: es.comp.os.linux.programacion
2 messages
2 total messages
Started by slinux
Mon, 10 Oct 2005 18:41
Re: ayuda con shell scripting
Author: slinux
Date: Mon, 10 Oct 2005 18:41
Date: Mon, 10 Oct 2005 18:41
22 lines
2065 bytes
2065 bytes
una ayudita rapida x ahi?? necesito crear un programa capaz de interpretar comandos utilizando las siguientes funciones de C: 1. La funci�n fgets sirve para leer comandos (desde la l�nea de comandos). 2. La funci�n strtok sirve para separar palabras dentro de una frase. 3. La funci�n fork sirve para crear nuevos procesos. 4. La funci�n execvp sirve para ejecutar programas mediante llamadas al sistema. El programa debe ser capaz de leer una l�nea de comandos con argumentos, separarlas en palabras con el strtok, ejecutar el comando con el fork + execvp, esperar que �ste acabe y leer la siguiente l�nea gracias de antemano -- slinux ------------------------------------------------------------------------ Ver este tema: http://www.softwaremix.net/viewtopic-422766.html Enviado desde http://www.softwaremix.net
Re: ayuda con shell scripting
Author: Carlos
Date: Tue, 11 Oct 2005 01:23
Date: Tue, 11 Oct 2005 01:23
42 lines
2004 bytes
2004 bytes
slinux wrote:
> una ayudita rapida x ahi??
claro que s�, para eso estamos.
> necesito crear un programa capaz de interpretar comandos utilizando
> las siguientes funciones de C:
[...] (fgets, strtok, fork, execvp)
> El programa debe ser capaz de leer una l�nea de comandos con
> argumentos, separarlas en palabras con el strtok, ejecutar el comando
> con el fork + execvp, esperar que �ste acabe y leer la siguiente
> l�nea
aj�. algo como esto:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
int main()
{
char linea[34421];
while (fgets(linea,34421,stdin)) {
pid_t pid;
if (pid=fork()) { if (pid>0) wait(0); }
else {
char *palabras[17210],*s=linea; int i=0;
while (palabras[i++]=strtok(s, " \t\n")) { s=0; }
execvp(palabras[0], palabras); exit(1);
}
}
return 0;
}
> gracias de antemano
por nada, por nada. que te aproveche.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads