enviroment

checkbow checkbow na cha601a
Neděle Březen 5 20:30:41 CET 2000


> Asi nejjednodussi je prohnat vystup rourou /* hledej int popen(...) */,
> to je presne k tomu urceny.

bohuzel s rourou udelanou pres popen() je problem ze je jednosmerna 
a ja potrebuju obousmernou 
nebo si to aspon myslim, protze pokud jsem ji otevrel s "r+" tak to pri pokusu o
zapis slitlo :( .
a podle GNU C  manualu je bud "r" nebo "w" coz mi nedostacuje

zkusil jsem tedy udelat pipe rucne

 pid_t pid;
 int myp[2];
 char *buf,*pp;
....
  if (pipe(myp)) 
   { 
     printf("error");
     return 1;
   }
  pid=fork();
  if (pid < (pid_t) 0) 
   { printf("fork error\n");
    return 2;
   } 
   else if (pid = (pid_t)0)
   { //child
     sprintf(pp,"%d",myp[0]);
     setenv("MSG",pp,1);
     system("./scr");  //spousti externi program(jako enviroment mu posilam
                              //    pipe) ktery bezi ve smycce a cte            
               //  data na vstupu a posila je zase na vystup         }
....
  pip=fdopen(myp[1],"r+");
  fputs(buf,pip);                    // zde to slitne taky
...

zaver tedy je, ze asi neco delam spatne
nevite nekdo co ?

checkbow





checkbow


Další informace o konferenci Linux