Alle Beiträge von nic_power
-
3Com OfficeConnect USB Adapter (WLAN)
Hallo, Du benötigst die Quellen für den Linux-Kernel, ohne diese lassen sich die Treiber nicht übersetzen. Du kannst die Quellen problemlos nachinstallieren (bei Suse beispielsweise über Yast->Softwareverwaltung). Nic
-
strlen nachprogrammieren
Hallo, Eine Anmerkung noch zum Assembler-Code bei der Umsetzung von strlen(). Viele Archtekturen stellen in ihrem Befehlssatz Instruktionen bereit, die die Abrarbeitung von Strings auf Assembler-Ebene unterstützen. Intel implementiert beispielsweise String-Operationen, die die Suche nach einem Null-Byte innerhalb des Strings zulassen. Damit ist eine 1:1 Abbildung des C-Codes auf eine Assemberinstruktion möglich. Die Schleife sähe dann wie folgt aus: repne scasb [/php] Bei HP siehts ähnlich aus, da hier die Load-Befehle die entsprechende Inizierung/Registermodifikation zum zählen unterstützen: [php] strloop: comib,<>,n 0,%r1,strloop ; Vergleich auf Null-Byte ldbs,mb 1(%r28),%r1 ; nächstes Byte in %r1 Laden bv %r0(%r2) ; Rücksprung zum Aufrufer sub %r28,%r26,%r28 ; Differenz berechnen Man sollte bei einer Umsetzung von strlen in Assember den Befehlssatz nach passenden Instruktionen durchsuchen, um optimale Code zu erhalten. Nic PS: Alle Beispiele ungeachtet der Tatsache, dass die Speicherlatenzen beim Byteweisen Laden die größere Bremse sein können. Das würde jetzt aber ein bisschen zu weit führen
-
WLAN einrichten
Hallo, die Rechweite ist sehr stark von den lokalen Gegebenheiten abhängig, daher ist es schwer eine pauschale Aussage zu machen. Mit zwei Decken dazwischen könnte es aber schon Probleme geben, zumindest musst Du mit Geschwindigkeitseinbussen rechnen. Anschlusstechnisch reicht Dein Equipment, Du kannst über einen AP mehrere WLAN-Karten betreiben. D.h. ein Switch oder HUB ist nur dann notwendig, wenn Du zusätzliche, kabelgebundene Endsysteme an Dein Netz anschliesse möchtest. Viele SoHo-Router mit WLAN haben meist auch noch zusätzlich einen kleinen Switch eingebaut (4 Port). Nic
-
strlen nachprogrammieren
Hallo, Im Vergleich zu welcher C-Version (und welchen Compiler-Optionen, Compiler, usw)? Was mich bei all den Beispielen wundert ist die Tatsache, dass ein ineffizienter Algorithmus für die Berechnung der String-Länge verwendet wird. Dieser wird auch nicht durch die Implementierung in Assembler schneller (der Code wird eher langsamer, da ein guter C-Compiler im Zweifelsfall die entsprechende Optimierung von selbst durchführt). In allen Code-Beispielen werden zwei Variablen benötigt, die innerhalb der Schleife modifiziert werden. Zum einen der Pointer auf den String und zum anderen eine Zählvariable. Das ist aber völlig unnötig, da uns C die Pointer-Arithmetik geschenkt hat. Nicht umsonst ist im K&R als Beispiel für strlen folgendes Code-Fragment zu finden: int strlen(char *s) { char *p=s; while (*p) p++; return (p-s); } [/php] Im inneren Loop der Schleife wird nur der Pointer erhöht (d.h. man spart sich pro Schleifendurchlauf eine Operation!), die eigentliche Länge des Strings wird später mit genau einer Operation berechnet. Und hier noch ein kleines Assemblerbeispiel für strlen: [php] .section ".text" .align 4 .global myStrlen .type myStrlen,#function myStrlen: mov %o0, %g3 ! pointer retten ! Argument wird in %o0 uebergeben loop: ldsb [%o0], %g2 ! char nach %o0 laden cmp %g2, 0 ! stringende erreicht ? bne,a loop ! nein, dann naechstes zeichen inc %o0 retl ! sprung zum aufrufer sub %o0, %g3, %o0 ! vorher noch laenge berechnen Nic
-
Feststellen ob Zeichen im stdin wartet
Hallo, In ANSI-C (nicht C++)? Die getc()/ungetc() ist eine Lösung, die auch ohne C++ laufen sollte. Nic
-
strcpy nachprogrammieren
Hallo, Auch im Sinne der Pointer-Arithmetik ist Fakt, dass diese Aussage schlicht und erfgreifend falsch ist. Es ist ein eklatanter Unterschied, ob strlen() einen Core-Dump produziert oder ein korrektes Ergebnis liefert. Ist synonym. Die Zeigerarithmetik ist integraler Bestandteil der Sprache und einheitlich definiert. Nic
-
Feststellen ob Zeichen im stdin wartet
Hallo, Das ganze ist leider etwas fummelig. Du könntest das Zeichen mit "getc()" einlesen und wieder mit "ungetc()" in den Strom zurückschreiben (sofern getc() auch tatsächlich was gelesen hat). Das ist zwar keine sehr elegante Lösung, sollte aber auch mit stdin funktionieren. Nic
-
SNMP Traffic Summierung
Hallo, dafür bietet sich mrtg an: http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ Nic
-
strcpy nachprogrammieren
Hallo, Dem ist nicht so. Man sollte immer die Grenzfälle mit in Betracht ziehen. Schau Dir mal das Verhalten der Funktion an, wenn Du einen Leerstring übergibst! In dem Fall würde strlen() versuchen, ab dem ersten Zeichen nach dem eigentlichen String-Ende die Länge zu ermitteln. Hier noch eine Lösung für das Ursprungsproblem: char * strcpy(char * dest,const char *src) { char *tmp = dest; while ((*dest++ = *src++) != '\0'); return tmp; } Nic
-
Netzwerkspeed messen
Hallo, beispielsweise mit netperf: http://www.netperf.org/netperf/NetperfPage.html Nic
-
strcpy nachprogrammieren
Hallo, Na, das wird nicht funktionieren (Du addierst 1 auf den Pointer und ermittelst dann die Länge). Nic
-
strcpy nachprogrammieren
Hallo, Nein, läßt sich nicht. Der Standard ist an dieser Stelle eindeutig (Referenz: ANSI Sec. 2.1.2.2.1, Sec. F.5.1 oder jede C-FAQ!). Die Fourmssuche sollte auch einiges zu Tage führen. Nic
-
Wireless Lan!
Hallo, warum eine externe Quelle verwenden, wenn man die Angaben auch aus erster Hand direkt von der IEEE bekommt (inkl. der Standards, die dort heruntergeladen werden können)? http://standards.ieee.org/wireless/ http://grouper.ieee.org/groups/802/11/index.html 802.11b+ ist kein (!) IEEE-Standard sondern eine herstellerproprietäre Erweiterung (auch wenn der Name anderes vermuten lässt). Nic
-
ftpausgabe in ne datei schrieben
Hallo, Beantworte die Frage mit "y" und die Ausgabe wird in Deine lokale Datei geschrieben . (Alternativ kannst Du es auch mal mit "ls - /tmp/test.txt" versuchen, Frage wie gehabt mit "y" beantworten). Du kannst übrigens auch mit dem Kommando "mget" arbeiten, damit lassen sich mehrere Dateien transferieren (mget *.doc), dabei unterdrückt "ftp -i" die Nachfrage bei jeder Datei. Nic
-
Zufallszahlen doch nicht so zufällig
Hallo, das liegt daran, dass praktisch jede Programmiersprache Pseudozufallszahlen erzeugt, die von einem bestimmten "seed" abhängen. Diese seed lässt sich in C beispielsweise mit "srand" setzen. Access sollte eine entsprechende Funktion bieten, als seed-Wert kannst Du beispielsweise die aktuelle Zeit verwenden. Nic
-
Checksumme einer Datei erstellen
Hallo, Um eine checksumme zu erzeugen, benötigst Du ein Verfahren, welches eine beliebig lange Eingabe (Deine Datei) auf einen kurzes, jedoch eindeutigen Wert abbildet. Ändert sich nur ein einzelnes Bit in der Eingabe, so muss sich auch die Checksumme ändern (ansonsten wäre es keine). Dazu eignet sich prinzipiell eine Einweg-Hashfunktion wie beispielsweise MD2, MD4, MD5. RIPE-MD oder auch SHA. Sehr weit verbreitet ist MD5 (wird praktisch von jedem Linux-Distributor verwendet). Aus dem Grund solltest Du auf MD5 zurückgreifen, zumal es bereits sehr viele Implementierungen gibt, die Du verwenden kannst. Nic
-
Wireless Lan!
Hallo, Momentan sind drei unterschiedliche WLAN-Standards von Interesse: 802.11a, b und g. 802.11 a und g arbeiten mit 54 MBit/s, allerdings arbeitet 802.11a in einem anderen Frequenzband als 802.11b und 802.11g. Wenn Du also eine 54 MBit/s Lösung einsetzen möchtest, solltest Du auf 802.11g zurückgreifen (auch um kompatibel zu bleiben). 22MBit/s verwenden proprietäre Herstellererweiterungen! Nic
-
Firewall: Address Translation
Hallo, wie wärs mit ein paar detaillierteren Informationen? Was für eine Firewall bsp. Ausserdem ist mir unklar an welcher Stelle Du die "Adress Translation" einbauen möchtest. NAT arbeitet auf IP-Ebene und läßt den Mail-Header unverändert. Dein Szenario klingt aber so, als ob Du den EMail-Header (genauer: "from" bzw "reply-to") verändern möchtest. Nic
-
Ports für best. IPs sperren auf 3com superstack2?
Hallo, bevor Du anfängst Strippen zu ziehen, solltest Du mal prüfen, ob nicht eine Filterung auf MAC-Ebene (L2) möglich ist. Die meisten Switches untersützten dieses Feature und das Ergebnis ist dasselbe (bestimmte Endsysteme können nicht auf den Print-Server zugreifen). Nic
-
interne ip ändern
Hallo, Diesen Dienst wird Dir kein Provider bieten können, da auch er nur über einen bestimmten Adressraum verfügt. Lediglich die feste Vergabe auf diesem Adressraum ist möglich. Nic
-
Mailings für Kunden technisch lösen
Hallo, bei grossen Mailmengen und/oder vielen Empfängern solltest Du den Versand auch nochmal mit Deinem Provider klären (nicht dass dieser dann eine Spamming-Aktion wittert und Deinen Account dicht macht). Nic
-
Exploits - Bufferoverflow ?!
Hallo, das Problem kann auch bei Variablen auftreten, die dynamisch allociert werden (Overflow auf dem Stack), allerdings dürfte das deutlich schwieriger nachzuvollziehen sein, da das Stack-Layout erst zur Laufzeit fest steht. Nic
-
Perl + User
Hallo, naja, wenn Du als User "root" ein "su" nach "root" durchführst, liefert das Kommando natürlich auch "root" zurück . Das Skript sucht sich das Pseudo-TTY Deiner Shell und ermittelt dazu den entsprechenden User aus den login-records (utmp) mittels "who". Funktionieren tut dies allerdings nur unter bestimmten Voraussetzungen. So muss beispielsweise auch die bash laufen, ist dies nicht der Fall (weil der Nutzer nach dem "su" in eine andere Shell wechselt), schlägt das Kommando fehl. Nic
- W-Lan
-
Selbstständigkeit / mögliche anbietbare Services für Kunden
Hallo, den Aufwand, ein vernünftiges und nützliches Tool zu programmieren, welches es noch nicht gibt, solltest Du aber nicht unterschätzen! Das ist nichts, was man von heute auf morgen (selbst ein halbes Jahr ist da eher knapp bemessen) übers Knie bricht. Nic