Der Hauptunterschied zwischen der GDI bei Windows und X ist der, dass X als Server/Client-System entworfen wurde. Das liegt eben an der Zeit als X entworfen wurde und wie damals Rechner, besonders teure UNIX Workstation benutzt wurden. Das dürfte auch eventuelle Geschwindigkeitsunterschiede erklären.
Aber X ist mittlerweile wirklich überholt und sollte langsam mal ersetzt werden. Ansätze gibt es ja bereits schon Y, Fresco und Freedesktop.org versucht mit X.org eben X11 ein wenig aufzubohren.
hab grade mal spasseshalber gnome ausprobiert und siehe da, gnome hat
das problem nicht. wird also wohl an der unstable-variante des kde3.3 liegen.
nv statt des nvidia treibers hatte übrigens keinen effekt.
naja ich kann auch erstmal mit gnome leben, so kann ich zumindest wieder
arbeiten. irgendwann wird wohl auch der bug im kde (oder wo auch immer)
behoben sein.
danke für eure hilfe
Hallo,
vielleicht wär' das was für die FAQ's, wenn noch ein paar Links dazu kommen? Dort fehlt nämlich so eine Linksammlung zu Sockets unter UNIX/Linux.
MfG
tuküe
Hmm, ich hätte wohl besser gleich nach dem xpm-Dateiformat geschaut. Das ist nämlich genau das, was ich brauche. Falls es jemanden interessiert:
xpm ist ein Dateiformat für Bilder, welches seine Daten in einer C-Datei als char-Array abspeichert. Die xpm-Datei kann so einfach in den Quellcode eingebunden werden.
#include "test.xpm"
//...
Glib::RefPtr<Glib::Pixbuf> my_image = Gdk::Pixbuf::create_from_xpm_data(test_xpm);
//...
CarstenJ schrieb:
Ich wollte das Paket einfach installieren, ohne dass es sich daran stört, ob Version 4.2 oder 4.3 vorhanden ist. Ich hatte übersehen, dass das Paket für Fedora Core 1 war, das für Core 2 lief.
Inject ist denke ich auch nicht das Richtige, denn die Librays werden ja tatsächlich gebraucht, unabhängig davon ob es sich installieren ließ oder nicht.
Naja, die Versionsnummer ignorieren geht nicht, Du kannst entweder "injizieren" oder ignorieren, andere Möglichkeiten kenne ich nicht.
Ich habe das System auf einem Laptop installiert. Manche Tasten, die man mit Alt Gr erreicht funktionieren (z.B. Backslash, Pipe-Zeichen, ...). Umlaute und die geschweiften Klammern gehen gar nicht. Bei dem Laptop handelt es sich um ein betagtes Modell der Firma Acer (Acer NoteLight).
Du könntest dir unter Windows Cygwin installieren und eine Shell (zB. zsh oder bash) emulieren und Mono emulieren lassen. Dann kannst du mit .net unter einer Linux ähnlichen Emulation arbeiten.
Aber eigentlich sollte .net doch so portabel sein, dass du ganz normal das Programm unter Windows entwickelst und es dann mit mono/dotgnu laufen lässt.
Bist Du sicher das accept mit NULL,NULL geht?
snoopdog schrieb:
clients[b]=accept(pMySocket->ServerSocket,NULL,NULL);
Sollte das nicht so:
socklen_t len=(socklen_t)sizeof(newConnection.addr);
newConnection.socket=accept(acceptSocket,(struct sockaddr*)&newConnection.addr,&len);
aussehen?
Und ich glaube ich habe das selbe Tutorial zur Socketprogrammierung benutzt wie du..:-) ; mein Code sieht fast genauso aus.
Gruß
Michael
Wenn er oft wartet, ist er wahrscheinlich interaktiv. Er kann natürlich auch auf Netzwerk oder Festplatte warten, aber das kann der Kernel wohl auch noch irgendwie herausfinden.
das braucht er nicht rauszufinden... nehmen wir mal an man will etwas von der platte lesen. der user - prozess macht einen syscall der durch einen sogenannten TRAP in den kernel - mode gelangt. hier führt der prozessor jetzt kernel - code aus. was dabei passiert ist folgendes:
der betreffende kernel - code "sagt" der festplatte das sie daten ranschaffen soll. da das aber eine gewisse zeit dauert (positionieren, lesen, schreiben der daten in puffer etc.) wird nach der anforderung der user - prozess blockiert und von scheduler suspendiert. der scheduler lagert einen anderen prozess ein der weiter ausgeführt wird. sobald die platte die daten im puffer stehen hat wird wieder ein interrrupt ausgelöst. die isr sorgt nun dafür das der user - prozess geweckt wird, welcher gerade auf die plattendaten wartet. dieser wird dadurch wieder rechenwillig und wird beim nächsten mal geschedult.
das entscheiden des schedulers welcher prozess gerade dran kommt sieht so aus:
ein prozess mit einer hohen priorität blockiert weil er auf ein ereignis wartet. der scheduler wählt jetzt den nächsten hochprioren prozess aus. sollte es keinen geben kommt einer der niedrigeren ebene dran. um zu verhindern das nur die hochprioren prozesse rechenzeit (sog. verhungern der anderen) bekommen gibt es eine alterrungsfunktion (hochpriore werden runter-, niedrigpriore prozesse raufgesetzt). auf jeder prio - ebene kann jetzt unter den verschiedenen prozessen wieder geschedult werden (round robin, sjf etc.) => den ganzen kram bezeichnet man als preemptives mehrschlangen - feedback - scheduling (ich find das word so geil ).
[0x[90]| schrieb:
Dann hast du wohl noch nie CTRL + ALT + F10 (oder war's F6?) auf einem SuSE Linux gedrueckt ^^
Nicht in letzter Zeit, aber die haben auf eben dieser Konsole garantiert auch keinen getty laufen.
Für Kdevelop 3 muss man nur ein neues Target im QMake oder Automake Manager definieren, dass eine Library darstellt, und die betreffenden Dateien hinzufügen.
Ich würde dir nicht nur deswegen einen Umstieg auf KDevelop 3 empfehlen.
Mir ist nicht bekannt, dass es eine Möglichkeit / Option beim 'mounten' gibt, mit der das entsprechende Filesystem nach Beendigung des Prozesses wieder automatisch "ausgeklinkt" wird.
Falls doch (und das in deiner fstab so eingestellt ist), ist klar, dass sleep nicht hilft, denn jeder Shell-Befehl (und so habe ich dein "sleep xx" verstanden) hat seinen eigenen Prozess.
Vielleicht solltest du mal dein cgi-bin und den fstab-Eintrag posten.
Martin
Ok, nachdem das jetzt geklärt ist, vielleicht noch ein paar Anstöße:
Für kleine Konsolenprogramme:
Vorgehensweise wie von mir oben geschrieben
Für größere Konsolenprojekte, die eventuell mal übersetzt werden sollen:
Nimm die normale ASCII-Codierung und gettext. Du schreibst englische Texte in dein Programm. Die Übersetzung machst du mit gettext.
Wenn du ein grafisches Programm mit gtkmm erstellen willst:
Auch gtkmm funktioniert mit gettext, allerdings verwendet es UTF8, also Unicode. Siehe Tutorial oder ustring, sowie die diversen Umwandlungsfunktionen.
Wie es andere Toolkits handhaben, weiß ich nicht, aber suche mit google mal nach i18n. Wie du siehst, wird das Thema Internationalisierung unter Linux ganz anders angegangen als unter Windows mit der MFC.