Anzeige:
Ergebnis 1 bis 7 von 7

Thema: [CTRL]-D Signal

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.01.2002
    Ort
    Hünibach
    Beiträge
    48

    [CTRL]-D Signal

    Hallo zusammen

    Wenn ich in einem Programm Ctrl-D druecke welches signal wird dann gesendet ?

    Bei Ctrl-C wird ja SIGINT gesendet.

    gruss akula

  2. #2
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    Es wird EOF gesendet, wenn ich mich nicht irre. Unter Windows war das aber Strg+Z, bei Linux Strg+D
    I haven't lost my mind - It's somewhere on a backup-disc

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.01.2002
    Ort
    Hünibach
    Beiträge
    48
    und wie kann ich das in Perl abfangen ?

    gruss

  4. #4
    Registrierter Benutzer Avatar von SeeksTheMoon
    Registriert seit
    22.02.2002
    Beiträge
    762
    Ich kann kein Perl, aber google sagt mir: libipc-signal-perl verwenden
    I haven't lost my mind - It's somewhere on a backup-disc

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.06.2003
    Beiträge
    73
    Hi,

    EOF ist kein Signal. EOF kriegst du z.B. wenn du von einer Datei ließt und dabei über das Dateiende hinausließt. Je nach Technik des lesens kannst du dann das EOF verschieden abfragen (z.B. mit dem eof() Aufruf).
    Was hat das jetzt mit Ctrl-D zu tun? Ganz einfach, wenn du von STDIN liest, so ist das wie lesen aus einer Datei nur das du eben die Zeichen von der Tastatur bekommst. Will der Benutzer seine Eingabe abschliessen, so drückt er Ctrl-D und dein Programm bekommt ein EOF gemeldet, was dann heißt, die Eingabe ist hier zu Ende ist.

    Gruß

    almoeli

  6. #6
    Registrierter Benutzer
    Registriert seit
    07.01.2002
    Ort
    Hünibach
    Beiträge
    48
    das problem ist dann, dass wenn der User ctrl-d drueckt, dann wird das EOF an einen Server uebermittelt, der dies dann als aufforderung sich zu beenden interpretiert und das ist nicht ganz das ziel eines Servers.

    heisst das jetzt, dass ich einfach beim server die eof() methode implementieren muss und das wars dann ?

  7. #7
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320
    hmm, in der Regel verwendet man doch eine ähnliche Struktur wie:
    Code:
    while ((c = getchar()) != EOF) machetwasmit(c);
    Ich nehme an, dass der Server ebenfalls so einen Loop enthält und bei EOF aus dem Loop fällt und sich beendet.

    Gruss, Andy

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •