Ciao a tutti ragazzi,spero possiate risolvermi questo piccolo problema.

In pratica ho fatto un programma che esegue la redirezione di una pipe (di due comandi:ifconfig e grep) in un file.

In un secondo momento dovrei prendere da quel file solo un pezzo,ma non riesco a farlo.

Qualcuno può darmi qualche suggerimento??

codice:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include <fcntl.h>
#include <sys/stat.h>
void visualizza_contenuto();
int main()
{
int fd[2];
int pid,pid1, status,fl;
char buff[10];
pipe(fd);
pid=fork();
if(pid==0)
{
close(fd[1]);
dup2(fd[0],0);
close(fd[0]);
close(1);
fl=creat("nuovo",S_IWUSR | S_IRUSR);
execlp("grep","grep","-A1","wlan",NULL);
exit(0);
}
pid=fork();
if(pid==0)
{
close(fd[0]);
dup2(fd[1],1);
close(fd[1]);
execlp("ifconfig","ifconfig",NULL);
exit(0);
//waitpid(pid,NULL,0);
}
else{
printf("sono il padre\n");}

close(fl);
//close(fl);
sleep(2);
visualizza_contenuto();
}

void visualizza_contenuto()
{
int fp,pid,status;
char buff[20];
int cont=0;

	//pid=fork();
	//if(pid==0){
	fp=open("nuovo",O_RDWR);
	if(fp==-1){
	printf("errore apertura file\n");
	}
	lseek(fp,18,SEEK_SET);
	read(fp,buff,20);
	printf("%s\n",buff);
	close(fp);
	while(buff[cont]!=' '){
	cont++;
	}
	buff[cont]='\0';
	printf("la nuova stringa è %s\n",buff);
}