Die Mathe-Redaktion - 26.01.2020 12:21 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktAward-Abstimmung ab 1.1.
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 729 Gäste und 25 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von Bilbo matph
Matroids Matheplanet Forum Index » Informatik » Linux und C: FD_SET verstehen
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Linux und C: FD_SET verstehen
Lucky_7
Aktiv Letzter Besuch: im letzten Quartal
Dabei seit: 21.01.2018
Mitteilungen: 164
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2019-11-29


Hey,

schauen wir uns mal folgenden Code an:
C
fd_set input_fdset;
int sock_fd
 
sock_fd=socket(PF_INET, SOCK_STREAM, 0);
 
 
FD_ZERO(&input_fdset);
FD_SET(STDIN_FILENO, &input_fdset);
FD_SET(sock_fd, &input_fdset);
if(select(sock_fd+1, &input_fdset, NULL, NULL, NULL)==-1)
   ...

Der Code ist nicht ganz vollständig. Es geht mir hierbei auch "nur" darum den Umgang mit FD_SET zu verstehen: Soweit ich weiß setzt FD_SET eine file descriptor flag ins Memory und zwar genau dortin, wohin input_fdset zeigt. Nun schreibe ich also das Flag 0 (STDIN_FILENO) dorthin. Aber gleich in der nächsten Zeile schreibe ich ein weiteres Flag (vrmtl. 3) dorthin. Wie stelle ich nun sicher, dass die vorher geschriebene 0 nicht überschrieben wird? Müsste ich im zweiten Einsatz von FD_SET nicht eigentlich &input_fdset um einen bestimmten Wert inkrementieren?

Und dann noch zu select(): input_fdset gibt hier alle files an, die ich lesen möchte, oder?

Gruß,
Luk



  Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10644
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2019-11-30


Hallo Lucky_7,
ein Blick in die manual page sollte helfen:
man FD_SET schreibt:
Four  macros  are  provided to manipulate the sets.  FD_ZERO() clears a set.  FD_SET() and FD_CLR() respectively add and remove a
       given file descriptor from a set.  FD_ISSET() tests to see if a file descriptor is part of the set; this is useful after select()
       returns.
Die Variable input_fdset repräsentiert eine Menge von Filedeskriptoren.

Servus,
Roland



  Profil  Quote  Link auf diesen Beitrag Link
Lucky_7 hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]