Zum Inhalt springen

icefox

Mitglieder
  • Gesamte Inhalte

    19
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von icefox

  1. icefox

    Eingabe Prüfen

    Meine Herren, (und natürlich Damen, falls anwesend) es handelt sich nicht im einen Schönheitswettbewerb, sondern um Proof of Concept Code. ( Nur damit ich auch mal meine Meinung gesagt habe, ohne das es jemanden interessiert. Ja, trollen macht Spaß. Gruß, icefox
  2. Die durch RedHat indoktrinierte Kommandoklatur ist: # service <servicename> <start|stop|restart|...>
  3. icefox

    Eingabe Prüfen

    Hallo Klotzkopp, ah, gut zu sehen. Und wieder was dazu gelernt! Vielen Dank! #include <iostream> #include <cctype> #include <cstring> #include <string> using namespace std; int main(int argc, char* argv[]) { unsigned char i; string eingabe; cout << "Bitte Eingabe: "; cin >> eingabe; // Ist der String zu lang? if( eingabe.length() >= 14 ) { cout << "Die Eingabe war zu lang." << endl; return(1); } // Gibt es Sonderzeichen? for( i=0; i<=eingabe.length(); i++) // Fuer jedes Zeichen in der Zeichenkette { if( 0 != ispunct( eingabe[i] ) ) // Wenn ispunct != 0, dann Zeichen gefunden { cout << "Sonderzeichen " << eingabe[i] << " gefunden!" << endl; return(2); } } // Gibt es Zahlen? for( i=0; i<=eingabe.length(); i++) { if( 0 != isdigit( eingabe[i] ) ) { cout << "Zahl " << eingabe[i] << " gefunden!" << endl; return(3); } } // Gibt es Grossbuchstaben? for( i=0; i<=eingabe.length(); i++) { if( 0 != isupper( eingabe[i] ) ) { cout << "Grossbuchstabe " << eingabe[i] << " gefunden!" << endl; return(4); } } cout << "Keine Beanstandung gefunden." << endl; return(0); } grüßlis, icefox
  4. icefox

    Eingabe Prüfen

    #include <iostream> #include <cctype> #include <cstring> #include <string> using namespace std; int main(int argc, char* argv[]) { int i; string eingabe; char* cstr; cout << "Bitte Eingabe: "; cin >> eingabe; // Ist der String zu lang? if( eingabe.length() >= 14 ) { cout << "Die Eingabe war zu lang." << endl; return(1); } cstr = new char [eingabe.size()+1]; // Allokiere platz für C Zeichenkette plus '\0' strcpy(cstr, eingabe.c_str()); // Kopiere den C++ Stringinhalt in die C Zeichenkette // Gibt es Sonderzeichen? for( i=0; i<=eingabe.length(); i++) // Fuer jedes Zeichen in der Zeichenkette { if( 0 != ispunct( cstr[i] ) ) // Wenn ispunct != 0, dann Zeichen gefunden { cout << "Sonderzeichen " << cstr[i] << " gefunden!" << endl; return(2); } } // Gibt es Zahlen? for( i=0; i<=eingabe.length(); i++) { if( 0 != isdigit( cstr[i] ) ) { cout << "Zahl " << cstr[i] << " gefunden!" << endl; return(3); } } // Gibt es Grossbuchstaben? for( i=0; i<=eingabe.length(); i++) { if( 0 != isupper( cstr[i] ) ) { cout << "Grossbuchstabe " << cstr[i] << " gefunden!" << endl; return(4); } } cout << "Keine Beanstandung gefunden." << endl; return(0); } Hier mein Lösungsansatz. Dieser benutzt nur C++ Standard library Funktionen und ist somit mit jedem C++ compiler zu übersetzen. In dieser Aufgabe muss man mit dem Trick arbeiten, auf die C Komponenten der Zeichenkettenverarbeitung zurück zu greifen. So sind die header <cctype> und <cstring> Wrapper für die C library und helfen in solchen Situationen aus. Ich hoffe dir geholfen zu haben. Gruß, icefox
  5. Hallo Sombrero, mache dir bitte klar, das du auf einem Unix Derivat arbeitest, und die von dir beschriebenen Funktionen von SuSE als Voreinstellung für vim gesetzt werden. Um zukünftig auf jedem Unix Derivat mit vim umgehen zu können, solltest du die Standard Befehle von vim beherrschen. Hier eine Schnellübersicht: VIM Quick Reference Card Wenn du jedoch die Einstellungen von SuSE übernehmen möchtest, kannst du die /etc/vimrc kopieren, oder deine ~/.vimrc. Je nachdem. Desweiteren hilft ein Blick in die Manpage von vim und die vim online Hilfe. :help Viel Glück, icefox
  6. icefox

    Virtual Box Fehler

    Hallo, Der universale Weg, ist in der Datei /etc/modprobe.conf folgende Zeilen hinzu zu fügen: blacklist kvm-intel blacklist kvm-amd blacklist kvm Je nach Distribution kann es die Verzeichnisse /etc/modprobe.d oder /etc/modules.d geben, unter dessen es die Datei blacklist geben kann. Hier kann man die Einträge auch ab legen. (Zu bevorzugen) Dadurch wird verhindert, das diese Module geladen werden. Gruß und viel Spaß!
  7. icefox

    Subnetze verknüpfen

    Im Gegenteil. Der DHCP Server arbeitet auf Layer 2 und geht anhand der MAC Addresse. Und ich bin mir ziemlich sicher, das der Linux DHCP Server auch 2 Addressen gleichzeitig zuweisen kann.
  8. icefox

    Subnetze verknüpfen

    Setz doch einen Linux DHCP server auf und stell die Clients auf DHCP um. Damit kannst du die IP Addressen dynamisch vergeben. Zwangsweise wirst du die "Turnschuhadministration" machen müssen, da die IPs bei deinen Clients ja händisch vergeben worden. Ausser du arbeitest dich mittels Windows RPC und/oder Linux/SSH/Shell durch. (Was auch super mit for() schleifen geht)
  9. icefox

    Subnetze verknüpfen

    Hallo nochmal, na dann vergib doch den Servern jeweils eine Adresse aus dem jeweiligen Netz. Man kann unter Windows und Linux einer Netzwerkkarte auch mehrere Addressen zuweisen. Und welche IP Addressen die Clients bekommen, kannst du mit einem DHCP Server zuweisen. Biba!
  10. Howdy, Am besten nimmst du hierfür 2 Maschinsche (unters. Standorte) von HP oder DELL mit viele SATA Pladden. machst dort dann jeweils dein RAID5 rein. CentOS mit iSCSI daemon drauf. Konfigurieren und den Speicherplatz als ganzes exportieren. So, 3. Kiste braucht nur Platz für eigenes Sys ohne Nutzdaten. System greift auf beide iSCSI daemons zu und spiegelt diese mittels mdadm, partitionierst durch LVM. UND exportiert die logical volumes wieder mittels iSCSI daemon. So, nachdem das nicht redundant genug ist, stellst du eine 4. Maschine identisch und parallel zur 3. Maschine auf. Sollte Maschine 3 ausfallen, kann Maschine 4 die Arbeit übernehmen. Was haben wir jetzt? 1. Massig Speicher 2. doppelte redundanz -> ausfallsicher gegenüber flut, komet und was da noch so kommen mag. Was natürlich noch zu berücksichtigen ist, ist das Netzwerk bzw. die Anbindung der Maschinen. Unterhalb Gigabit würde ich das nicht planen. Gruß und viel Spaß!
  11. icefox

    Subnetze verknüpfen

    Nagut, ich geh mal davon aus, das die Rechner alle im selben Layer 2 liegen. D.h. am selben switch, bzw in einer sogenannten Collision Domain. Was du brauchst, ist eine Büchse mit 2 Netzwerkkarten. Auf die Büchse machst du dann das Linux deiner Wahl drauf. Dann gehts auch schon los. Beide Netzwerkkarten sollten mit dem Switch verbunden sein. Jetzt vergibst du den beiden mal eine Adresse: # ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up # ifconfig eth1 194.173.0.2 netmask 255.255.255.0 up So, jetzt solltest du die Rechner in beiden IP Netzen (Layer 3) pingen können. Falls nicht, sind deine Kabel, Netzwerkkarten oder Netzmasken nicht in Ordnung. Als nächstes musst du der Linux Büchse erklären, was sie tun soll. Und was soll sie tun? Na klar, weiterleiten (forward). Das von Wo nach Wo kommt später. # echo 1 > /proc/sys/net/ipv4/ip_forward Damit ist die Einstellung leider nicht von langer Dauer. Nach dem nächsten reboot ist sie weg. In der Datei /etc/sysctl.conf suchst du die Zeile net.ipv4.ip_forward = 0 und änderst sie in net.ipv4.ip_forward = 1 Falls es die Zeile nicht gibt, dann kannst du sie einfach anlegen. Was nun? Naja, die Rechner müssen sich irgendwie finden. Auf den Rechnern im Netz 194.173.0.0 gibst du als Standardgateway die Addresse der Linux Kiste ein: 194.173.0.2 Auf den Rechnern im Netz 192.168.0.0 gibst du als Standardgateway die Addresse der Linux Kiste ein: 192.168.0.2 Jetzt sollten die Maschinen miteinander kommunizieren können. Der einzige Nachteil liegt jedoch dabei, das die Maschinen in 192.168.0.0 eine Internet Adresse 194.173.0.0 niemals erreichen können, weil es sich ja um die Rechner im LAN handelt und nicht im WAN. Soooo. Das war leider noch nicht alles. Die Linux Maschine entscheidet jetzt für die Maschinen 192.168.0.0 und 194.173.0.0 wo denn die Pakete hin gehen sollen, die nicht in den Netzen liegen. D.h. wir müssen auf der Linux Kiste ein Standardgateway definieren. Zum Beispiel: # route add default gw 192.168.0.1 Mit diesen Einstellungen kannst du jeweils in beide Netze und ins Internet kommunizieren. Geil, oder? ABER ACHTUNG: Auf der Linux Kiste am besten die Firewall ausschalten. Und wenn mehrere hundert Rechner über deine Linux Maschine miteinander kommunizieren, dann solltes du professionelle Server Gigabitkarten PCI Express verwenden, oder vergleichbares. CAT 5e aufwärts als Kabel und Gigabit am Switch. Und pass auf, das dir die CPU der Linux Kiste nicht weg schmilzt. Grüße und viel Spaß!
  12. foobar geht in die richtung blafasel, bzw. bla und fasel oder blah und fasel.
  13. Wie wärs mit: int foo[] = { 3, 4, 5 }; int i; for( i = 0; NULL != foo[i]; i++ ) i--; printf("array first dimension count: %d\n", i); ?
  14. Zwichen for() und i--; war mit Absicht eine Leerzeile, denn diese seperiert for() und schliesst es ohne Block ab. environ; <- enthält zu guter letzt NULL. environ[i--]; <- enthält jetzt letztes element i = Anzahl der Elemente i-- = letztes Element So, ich glaube jetzt haben wir es auseinandergezogen? sizeof() berechnet die Anzahl, obiger Algorithmus zählt die Anzahl. Was nun schneller geht und/oder portabler ist wohl von Fall zu Fall unterschiedlich. Was meint ihr?
  15. Bei erstens muss nicht unbedingt environ[0] existieren und das Prog würde zur Laufzeit SIGSEGV falls environ[0]; nicht alloziert ist. Bei 2. ist environ ein 2 dimensionales Array. Erst ein character array und dann eine dimension weiter. Es gibt sicherlich einige Methoden um den Array zu zählen. Welche fällt euch ein?
  16. Hallo Leute, wie findet man heraus, wie groß ein Array ist? Wieviele Element hat wohl der array environ? int i; extern char* environ[]; for( i = 0; i++; NULL != environ[i] ) i--; Das wars. Kein Codeblock für for und i enthält die Anzahl der Element für den array environ.
  17. root@BadCat:~# cat /boot/grub/menu.lst # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/sda6 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora (2.6.27.5-37.fc9.i686) root (hd0,0) kernel /vmlinuz-2.6.27.5-37.fc9.i686 ro root=UUID=a5bda8b5-8337-471e-8b0e-25984d242758 rhgb quiet vga=0x31B initrd /initrd-2.6.27.5-37.fc9.i686.img title Fedora (2.6.26.6-79.fc9.i686) root (hd0,0) kernel /vmlinuz-2.6.26.6-79.fc9.i686 ro root=UUID=a5bda8b5-8337-471e-8b0e-25984d242758 rhgb quiet vga=0x31B initrd /initrd-2.6.26.6-79.fc9.i686.img title Fedora (2.6.25.14-108.fc9.i686) root (hd0,0) kernel /vmlinuz-2.6.25.14-108.fc9.i686 ro root=UUID=a5bda8b5-8337-471e-8b0e-25984d242758 rhgb quiet initrd /initrd-2.6.25.14-108.fc9.i686.img title Vista rootnoverify (hd0,1) chainloader +1 Meine grub Datei, das letzte Stanza ist für Windows. Informationen zur Einrichtung dieser Datei: $ man grub $ info grub
  18. icefox

    Virtual Box Fehler

    Dann hat es funktioniert, da er nämlich kvm und kvm_amd entladen konnte. Beide Module sind entladen und du kannst vbox nun starten. Viel Spaß!
  19. icefox

    Virtual Box Fehler

    $ rmmod kvm-amd kvm-intel kvm

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...