@Lord
wie "war quark"? stimmt das jetzt was mir "besserwisser" da geschrieben hat oder nicht?
ich habe auch herausgefunden, dass es auch am senden liegt. ich glaube die senderoutine braucht bei mir zu lange. vom kopieren der daten in die senderoutine, bis zum endgüligen versenden vergeht zuviel zeit. ich werde das mal nacharbeiten.
ich wüsste trotzdem gerne von euch, ob es sinnvoll ist von select() auf epoll() umzusteigen. ich habe leider noch keine codebeispiele für einen epoll server gefunden.
wisst ihr zufällig eine seite?
danke!
supertux schrieb:
wind00fi schrieb:
das kann linux scheinbar nicht. da sag noch einer, windows ist doof.
das hat mit GNU/Linux nichts zu tun sondern mit der Konfiguration des Window Managers und/oder Desktop Environments. Aber da der OP keine Vernünftige Angaben zu seinem System macht, kann man ihm nicht helfen.
Ja, sorry, aber ich hab das nicht gerafft mit dem Windowsystem. Ich habe Debian mit Gnome. Das sollte aber bei jeder Linux-Distro funzen - kann ich mir wohl abschminken. Muss User selber einstellen.
Gruß,
B.B.
such doch mal nach einem tutorial oder handbuch zu deinem desktop environment bzw. windowmanager (bspw. xfce, kde, gnome, ...), wenn du hintergrund oder sonstwas am desktop aendern willst ...
mfg,
julian
die 3 Zeilen da im Codeblock sind ein shell-Script. Da musst du nur prog.exe durch den Namen deiner ausführbaren Datei ersetzen und dann das Script aufrufen statt direkt dein Programm.
In dem Programm kommst du dann mit getenv("MY_APP_PATH") an den Pfad wo das Script (und dein eigentliches Programm) liegt und kannst relativ zu diesem Pfad deine Daten finden.
Hallo Leute,
vielen dank für die Beiträge. Zunächstmal nanosleep() und timer_create() unterliegen ebenfalls dem Systemzyklus, wie ich leider Feststellen musste, daher lässt sich die Auflösung nicht weiter Steigern aber:
Bei meinen Recherchen bin ich auf die funktion nanospin() bzw. nanospin_ns() aus <time.h> gestoßen. Diese Funktionen lassen tatsächlich eine Auflösung von 1 Nanosekunde zu. Hierfür wird eine art do...while Schleife aufgerufen und die vergangene Zeit abgefragt - was natürlich zur vollen Auslastung des Prozessors führt. Da mehrere parallele Threads laufen müssen könnte das Probleme geben, aber bis jetzt, mit zwei Threads, läufts gut.
Hallo Spezialisten,
ich muß einen meiner Kernel-Treiber erweitern. Ich möchte Zeichen über /dev/ttyS3 einlesen und ausgeben. Wie macht man das, wenn man nicht im USER-Space ist?
Hat hier jemand einen Tip dazu?
Vielen Dank.
sigmu
Hallo, danke erstmal für eure Hilfe. Die Bücher, sind denke ich mal nicht schlecht, wäre auf jedenfall eine Überlegung wert. Bei CRC32 würde ich das gerne händisch implementieren, da mich das einfach mal interessiert, wie das genau funktioniert. Jedoch werde ich auch den Umfang von SSL nutzen. Ist zwar doppelt gemobbelt, aber ist ja auch nur zu test zwecken nicht für den Produktiv einsatz gedacht. Habe auch einen kleinen Einstieg gefunden, jedoch ist das fast nur Code und kaum erklärt was im Hintergrund so passiert...
http://tldp.org/LDP/LG/issue74/tougher.html
Aber besser als nichts, ich denke mal darauf kann man aufbauen.
man sollte in neuen anwendungen sigaction verwenden und auf signal verzichten.
sleep wird abgebrochen, sobald ein signal ankommt, das nicht ignoriert wurde.
das KILL signal kannst du in der anwendung nicht abfangen.
Jocker16 schrieb:
ok, hab jetzt sowohl die testlib, als auch das testprogramm mit debug-infos kompiliert, bekomme allerdings bei valgrind keine infos in welcher zeile der fehler passiert, und gdb sagt mir:
0x00007f9698142789 in ?? () from /home/jocker/libtestplugin.so
Keine ahnung wieso er mir die Zeilennummer nicht sagt.
Wie kann ich testen, ob ein programm wirklich debug symbole enthält?
Werd jetzt auch mal versuchen die glibc mit debug infos zu kompilieren, vllt zeigt mir ja gdb/valgrind dann mehr.
Wahrscheinlich wird durch den Fehler einfach irgendein Code ausgeführt, der sich in irgendwo in testplugin.so befindet. Das kann Code sein, für den es keine Debuginformationen gibt, weil der vom GCC automatisch eingefügt wird, oder es ist nicht mal Programmcode.
hallo, sry dass ich diesen uralten thread hier wieder auskram. aber ich steh grade genau vor dem selben problem, ich vermute stark dass der aufgabensteller sogar der selbe ist
ich hab nun gelesen dass es für solaris die rpcgen option -A gibt, die genau dies tut, leider ist diese option in der linux version nicht vorhanden....
ich hoffe einfach mal dass jemand in den 6 jahren eine lösung gefunden hat
hallo,
ich schreib derzeit einen Server (arbeite mit der Socket-API) und ich suche eine Möglichkeit zu erkennen ob ein eingetroffenes Request von einer Broadcastadresse kommt (auch ob es Broadcastadresse einen Subnetzes ist, die muss ja ncht zwangsläufig den dezimalwert 255 enthalten).
Gibts dazu irgendwelche vorgefertige Funktionen ? Konnte dazu leider nichts finden was mir weiter helfen konnte. Ein Request über die Broadcastadresse ist nicht vorgesehen und will ich daher komplett abfangen. Zudem soll dann nicht das ganze Netz gefloodet werden, wenn der Server antwortet.
Kennt da jemand eine Möglichkeit das mit Boardmitteln zu prüfen, oder müsste ich so eine Prüfung komplett selbst schreiben ?
ist ein port geschlossen, wird im allgemeinen immer eine entsprechende meldung sofort nach einem versuch, eine verbindung aufzubauen, zurückgeschickt. manche paketfilter verhindern das und nennen das "stealth mode" oder so. möglicherweise ist das bei diesem server auch der fall.
das programm hängt sich übrigens nicht auf, sondern wartet einfach auf dsa timeout, bis zu dem der kernel versucht, eine verbindung aufzubauen. irgendwann gibt der kernel dann auf und connect wird dir einen fehler zurückgeben.
Mir will auch kein guter Grund dafür einfallen. Die Optik würde ich allerdings trotzdem mal ausschließen, ncurses besticht ja nicht gerade durch eine hübsche und übersichtliche Programmierschnittstelle.
Naja, andererseits passen gerade deswegen solche Merkwürdigkeiten irgendwie wieder ganz gut ins Bild...