Hola buenas, estoy programando una minishell para ir probando con esto de c. Estoy programando en debian con gcc 4.4 .
El comando que estoy intentando emular es grep "model name" < <input_file> .
El caso es que no consigo hacerlo bien. No tiene mucho misterio, pero creo que me hago un lío con la función dup2(). Creo que no redirecciono bien las salidas, pero por mas que leo en internet no entiendo porque esta mal.
Les dejo solo un main() con la función. Antes de meterlo en la minishell, programo los comandos en "módulos" diferentes hasta que funcionan debidamente.
Gracias de antemano, cualquier ayuda es bien recibida. Saludos
El comando que estoy intentando emular es grep "model name" < <input_file> .
El caso es que no consigo hacerlo bien. No tiene mucho misterio, pero creo que me hago un lío con la función dup2(). Creo que no redirecciono bien las salidas, pero por mas que leo en internet no entiendo porque esta mal.
Les dejo solo un main() con la función. Antes de meterlo en la minishell, programo los comandos en "módulos" diferentes hasta que funcionan debidamente.
Gracias de antemano, cualquier ayuda es bien recibida. Saludos
Código [Seleccionar]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
int pid=0;
int sys_call_response=0;
int my_pipe[2];
int fd=0;
int main()
{
char input_file[20];
scanf("%s", input_file);
fd =open(input_file, O_CREAT | O_RDWR, 0666);
char *arguments[3] = {"grep","model name",NULL};
pid = fork();
if(pid==0)
{
dup2(fd,1);
sys_call_response = execvp(arguments[0], arguments);
exit(0);
}
else wait(NULL);
return 0;
}
. Sabria resolverlo de otras formas y se me ha ocurrido alguna como pasar los numeros como int dentro de una array normal y ya esta, pero me gustaria que me ayudasen si pueden y me explicasen porque no consigo meter una posicion en mi ArrayList. Se que el codigo es muy largo asi que no se molesten en entenderlo si no quieren. Voy a indicar donde estan los errores, y por favor no pongan solo un codigo, si pueden dejen un poco de teoria para que lo entienda
. Muchas gracias de antemano y Saludos!
La verdad es que como casi todos supongo, yo empece programando con los lenguajes de alto nivel, y esto ,a pesar de llevar un tiempo con ello me resulta un poco desconcertante, porque a pesar de todo el tiempo que llevo aprendiendo mips parece que nadie lo usa y sin embargo x86 parece el rey del mambo.