[Suche] Bandwith Monitor
-
"Everything in Linux can be represented with a file" (Linux Thorvald)
Mach mal ein cat /proc/net/dev
Dieses /proc/net/dev kannst du wie ne normale Datei in C++ öffnen...
-
Kühl!
Danke für den Tip.
Dito an nman.
-
Original erstellt von Headhunter:
"Everything in Linux can be represented with a file" (Linux Thorvald)Wenn jemand doch dieses Konzept wirklich mal konsequent umsetzten würde ...
-
Hi !
So, die erste Version von dem BW Monitor hab ich mal hochgeladen : http://jojo.j-ws.de/showtopic.php?forum=monitor.for&index=1
Wäre toll wenn ihr denn mal kurz auf Fehler o.ä. checken könnt.
Insbesonders interessiert mich ob der auf ner normalen 80x25 Textkonsole gut aussieht.Thx
Btw : Wer an den technischen Details interessiert ist, nur melden !
-
Kannst du bitte nochmal dein tar.gz checken?
Das produziert hier nur Datenmüll.
-
Also ich kann das Ding sehr gut entpacken.
Hast Du die MD5-Summe gecheckt?Headhunter: Es wäre wirklich sinnvoll, wenn Du das Ding so umschreiben könntest, dass es nicht immer 100%-Cpu-Zeit braucht. (Kompilieren und laufen lassen kann ich das Ding ohne Fehler.)
-
100% CPU Zeit ? Mh, bei mir net
Kann aber mal gucken...Oh, stimmt ist wohl echt was hoch
Merk ich aber sonst nix von. Egal, werd ich fixen, danke für den Hinweis ![ Dieser Beitrag wurde am 12.03.2003 um 14:08 Uhr von Headhunter editiert. ]
-
mal ohne das angeschaut zu haben: du wirst vermutlich mit nem timer arbeiten, der die datei immer wieder neu einliest. ein kleiner tip, um etwas leistung zu sparen (falls du das nicht sowieso machst): immer vor dem öffnen checken, ob sich die datei überhaupt verändert hat (geht schön mit stat), so kannst du wenn der rechner mal nix macht, rechenzeit sparen.
-
mal ohne das angeschaut zu haben: du wirst vermutlich mit nem timer arbeiten, der die datei immer wieder neu einliest. [...]
Nein, schlimmer
:
while (zeit < 1000ms) {}
Mal schaun wie das mit nem zusätzlichem sleep aussieht !
[...]ein kleiner tip, um etwas leistung zu sparen (falls du das nicht sowieso machst): immer vor dem öffnen checken, ob sich die datei überhaupt verändert hat
(geht schön mit stat), so kannst du wenn der rechner mal nix macht, rechenzeit sparen.Sorry, das ist mein ersten Linuxsystemprogramm, ich hab von solchen Sachen keinen Plan. Interessanterweise laufen aber wohl auch einige bits über die Leitung wenn grad keine Verbindung aktiv ist (selbst wenn das Kabel weg ist !)
-
Hi,
du koenntest mit der 'select'-Funktion arbeiten:
//irgendwo am Anfang struct timeval tv; tv.tv_sec = 2; //2 sekunden //in der while (oder vielleicht faellt dir ne bessere pos. ein) while ( 1 ) { select ( 1, NULL, NULL, NULL, &tv ); //wartet 2 sekunden //... }
Vielleicht kann mans ja auch noch besser machen
Wenn es dir nichts ausmacht, dann werd ich das Prog. auch noch fuer BSD
ein wenig anpassen (hab glaub ich gar kein procfs installiert).mfg
v R
-
Hi !
Danke für den Code, werd ich am WE auch mal probiern
Wenn dus porten willst : Gerne, vielen dank !
Ich kann dir auch Code geben, jedoch wollte ich den nicht einbauen, da ich keine Möglichkeit zum testen hab...
-
Ich kann dir auch Code geben, jedoch wollte ich den nicht einbauen, da ich keine
Möglichkeit zum testen hab...Jepp, kannste machen:
mfg
v R
-
So, EMail ist unterwegs
Das mit dem Select klappt aber net, wie muss ich die Funktion anwenden ?
Thx !
-
Hi,
sehe grad, dass die select-Anweisung falsch ist, es muss so heissen:
[cpp]
select ( 0, NULL, NULL, NULL, &tv );[/cpp]Kurz zur Funktion select:
select prueft, ob ein oder mehrere Filedeskriptoren zum lesen (Argument zwei der
select-Funktion == Lesedeskriptormenge), zum schreiben (Argument drei der select-
Funktion == Schreibdeskriptormenge) oder aus der Exception-Deskriptormenge bereit
ist. select prueft und wartet bis der timeout abgelaufen ist (letztes Argument).
Wird kein timeout angegeben, kehr select erst zurueck, wenn einer der File-
deskriptoren bereit ist, oder aber ein Signal abgefangen worde. Das erste
Argument ist die Nummer des groessten Filedeskriptors aus allen drei Deskriptor-
mengen. Zu ihm musst du immer +1 angeben.Hoffe ich hab keine Fehler in der Erklaerung gemacht. Naeheres findest du in den
Manpages bzw. auch im Buch "Linux/Unix Systemprogrammierung".mfg
v R