Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen.

Ich hab wieder mal ein Problem.

Ich möchte über ein Pipe eine Verbindung zu einem PHP-script herstellen (funktioniert auch), dann übergebe ich ihm daten (funzt auch wieder) und bekomme dann wieder verarbeitete daten zurück (woohoo funzt schon wieder).

Jetzt möchte ich gerne, bevor mein Programm von PHP das ergebnis zurückbekommt ein select() machen (oder was auch immer dafür geeignet ist) mit einem timeout. es kann ja passieren, dass der php sich aufhängt und ich möchte dementsprechend reagieren.

mein ansatz schaud so aus, dass ich folgenden code drinn hab:

fd_set rset;

....

timeval timeout;

timeout.tv_sec=20;

FD_ZERO (&rset);

FD_SET (outfp, &rset);

status = select (outfp, &rset, NULL , NULL, &timeout);

/*STATUS AUSWERTEN*/

 ...

buflength = read(outfp, buf, 300);

Ich bekomme beim select jedoch -1 zurück.

Wie müsste es richtig ausschauen?

Danke im vorraus ;)

Geschrieben (bearbeitet)

AAAAAAaaah ich glaub das war das problem :)

jetzt schaud es folgender masen aus:

 fd_set rset;

    timeval timeout;

    timeout.tv_sec=20;

    timeout.tv_usec=0;

    FD_ZERO (&rset);

    FD_SET (outfp, &rset);


    status = select (outfp+1, &rset, NULL , NULL, &timeout);


    *buf = '\0';....

(outfp+1 muss gestellt werden, da es heisd es muss der höchste FD +1 sein. ... hab ich so gelesen ^^)

Bearbeitet von Shamharoth
Geschrieben

ou sry stimmt, ich hab es vergessen zu erwähnen. naja ich hoffe mal, dass durch den verbesserten code den ich im vorherigen post reingestellt weiterhelfen kann, wenn jemand mal nach select sucht (Fehler lag trotzdem an dem fehlenden Angeben von Millisekunden. hatte es auch mal mit outfp+1 und hatte den Fehlercode ausgespuckt ;) )

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...