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

					
					
					
						
  Rispondi quotando