
nic_power
Mitglieder-
Gesamte Inhalte
3983 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von nic_power
-
Hallo, Eine "Instrusion Attack" bedeutet, das jemand versucht, in Dein Netzwerk einzudringen. Allerdings ist die Güte dieser Aussage stark vom verwendeten IDS abhängig, da zum Teil auch Fehlalarme auftreten können. Mit einem IDS kannst Du Angriffe in erster Linie erkennen; um sie zu verhindern, solltest Du eine entsprechend konfigurierte Firewall einsetzen. Nic
-
Hallo, einfach einen Zähler mitlaufen lassen und mit "sprintf()" (parameter wie bei printf, liefert jedoch einen string zurück, der entsprechend formatiert ist) den String für den Dateinamen zusammenbauen. Nic
-
Hallo, eigentlich sollte das per Default eingestellt sein. Ansonsten kannst Du das Verhalten mit dem Kommando "preserve" im ftp-prompt umstellen (zumindest unter Linux). Nic
-
Hallo, hinzu kommt, dass Du mit den falschen Datentypen arbeitest ("%s" erwartet ein "char *" und kein "char" als Eingabe!). Das Switch Statement muss dann ebenfalls entsprechend angepasst werden. Nic
-
Hallo, Nein, geht nicht. Ein Nullpointer als Return-Wert (beim fopen) bedeutet nur, dass die Datei nicht geöffnet werden konnte. Es ist ein großer Unterschied, ob eine Datei existiert und leer ist oder nicht existiert! Nic
-
Hallo, Point to Multi-Point Bridge bezieht sich in erster Linie auf die Tatsache, dass Du mehrer Bridges (und nicht nur zwei) miteinander verbinden kannst. Aus diesem Feature läßt sich jedoch nicht schliessen, dass auch noch zusätzlich WLAN Clients connecten können! Nic
-
Hallo, vmware fehlt in Deiner Liste (daneben gibt es noch "Virtual PC", das läuft allerdings nur unter Windows und MAC-OS). Nic
-
Hallo, sehr viele nützliche Informationen zum Thema ADSL findest Du auf der folgenden Seite: http://adsl-support0.de/index.html Nic
-
Hallo, da Du mit long double arbeitest, solltest Du bei der Ausgabe mit "%Lf" bzw. "%Le" arbeiten. Ein cast bei der Zuweisung in das Array kann auch nicht schaden: #include <stdio.h> long double summe(long double *f, int n); int main() { int i,n=5; long double f[n]; for (i=0;i<n;i++) { f[i]=(long double)i; } printf("Summe= %Le\n",summe(f,n)); } long double summe(long double *f, int n) { int zahl=0; long double erg=0.0; for (zahl=0;zahl<n;zahl++) { erg=f[zahl]+erg; } return erg; } [/php] Nic
-
Hallo, %c liesst nur einen char ein, Du hast jedoch noch das "return" im Tastaturpuffer (das wird dann später sofort eingelesen). Nic
-
Hallo, was ist denn jetzt Deine konkrete Frage? Nic
-
Hallo, Das normale Routing reicht aus. Wichtig ist nur, dass der Defaultrouter in Eurem Netz die Route für das 192er Netz kennt. Das kannst Du entweder statisch konfigurieren (ist mit Arbeit verbunden) oder über ein eventuell vorhandenes Routing-Protokoll (sofern ihr ein entsprechendes Protokoll verwendet; die Vorgehensweise hängt stark von Eurem Netzdesign ab). Ein Masquerading ist nicht notwendig, da Du bei korrektem Routing die Server unter den 192er Adressen erreichen kannst und auch ausreichend Adressraum zur Verfügung hast. Anders sieht es allerdings aus, wenn Du die Server unter der 172er Adresse erreichen möchtest (weil beispielsweise die Clients nicht umkonfiguriert werden sollen). Nic
-
Hallo, %ld ist an dieser Stelle aus zwei Gründen schlicht und ergreifend falsch. Zum einen darf %l nur mit Integers verwendet werden und zum anderen ist %d keine Format für eine Fliesskommavariable! Für Fliesskomma-Arithmetik wird %L verwendet. Korrekt wäre also printf("Summe= %Lf\n",summe(f,n)); [/php] Nic
-
Hallo, dafür gibt es "stat and friends": #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int main(int argc, char **argv) { struct stat buf; stat(argv[1], &buf); printf("Dateigroesse=%d Bytes\n", buf.st_size); } [/php] (Achtung, keinerlei Fehlerprüfung im Code!!!) Nic
-
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
-
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
-
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
-
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
nic_power antwortete auf Guybrush Threepwood's Thema in C und C++
Hallo, In ANSI-C (nicht C++)? Die getc()/ungetc() ist eine Lösung, die auch ohne C++ laufen sollte. Nic -
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
nic_power antwortete auf Guybrush Threepwood's Thema in C und C++
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 -
Hallo, dafür bietet sich mrtg an: http://people.ee.ethz.ch/~oetiker/webtools/mrtg/ Nic
-
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
-
Hallo, beispielsweise mit netperf: http://www.netperf.org/netperf/NetperfPage.html Nic
-
Hallo, Na, das wird nicht funktionieren (Du addierst 1 auf den Pointer und ermittelst dann die Länge). Nic