|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2005
Messaggi: 38
|
[C] Problema con redirezione e lseek
Ciao a tutti
Ho un piccolo problema con questo programma:dopo aver effettuato la redirezione,dovrei continuare a lavorare sul programma e prendermi solo una stringa del file risultante dalla redirezione,ma non ci riesco.Dove sbaglio? 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); } close(fl); //close(fl); sleep(2); visualizza_contenuto(); } void visualizza_contenuto() { int fp,pid,status; char buff[20]; int cont=0; int n; 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); } |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Dec 2005
Messaggi: 38
|
Problema risolto.
Invece di tutto quel codice per fare la redirezione con un system si risolve tutto. Grazie comunque a tutti ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:39.