ProgChild schrieb:
Andere Möglichkeit: Kauf dir einen vernünftigen Router oder spiel mal ein Firmware-Update, falls es eins gibt, auf.
Nur um zu unterstreichen, dass ProgChild recht gut weiß, wovon er redet: Dein Router baut Mist. Mach ein Firmware-Update, oder kaufe Dir einen neuen (oder befolge supertux' oder ruedigers Ratschlag), es sei denn, es macht Dir Spaß, unsinnige Programme zu schreiben, oder Du möchtest das als Programmierübung machen.
Wenn Du beim Linken von static Libraries möchtest, dass auch unbenutzte Symbole im- und damit wieder exportiert werden, hilft evtl. der Linkerparameter --whole-archive (oder beim Compiler -Wl,--whole-archive).
Wäre es nicht sinnvoller in diesen Fällen einen anderen Scheduler zu benutzen? In den meisten Fällen wird es sich dabei eher weniger um ganz gewöhnliche PCs mit ganz gewöhnlicher Software handeln, oder nicht?
the[V]oid schrieb:
return ( timeval.tv_sec - m_timeval.tv_sec ) * 1000 + ( timeval.tv_usec - m_timeval.tv_usec );
gettimeofday liefert Microsekunden, nicht Millisekunden:
return ( timeval.tv_sec - m_timeval.tv_sec ) * 1000000 + ( timeval.tv_usec - m_timeval.tv_usec );
Und der Wert, der dabei rauskommt, sind dann natürlich auch keine Sekunden, sondern Mikrosekunden.
Linux-Programmierer schrieb:
Ich gehe gerade den Autotools Artikel aus dem Magazin durch und habe festgestellt, dass make die Änderung der Dateien anhand des Dateiattributs für den letzten Zugriff festmacht (zumindest hat make nach einem touch main.c, die nicht veränderte main.c neu übersetzt), funktioniert make überhaupt auf Partitionen wie mit noatime eingehängt wurden?
make berücksichtigt _nicht_ die Accesstime, sondern die Modificationtime! Standardmäßig ändert man: touch beide Zeiten. Wenn du nur ein touch -a main.c machst, sollte nicht neukompiliert werden.
Ich bin mir jetzt auch nicht ganz sicher, aber eigentlich erhält jeder Prozess eine eigene Instanz des Speichers der Shared Library, da hat static afaik nix mit am Hut. Für richtigen geteilten Speicher solltest du dir "POSIX Shared Memory" ansehen.
Hm stimmt, hab ich leider nicht dran gedacht, sorry. Ansonsten fällt mir da jetzt auch keine Möglichkeit mehr ein. Wenn du wirklich unbedingt einen Timout brauchst könntest du vielleicht mit Threads etwas anfangen, das wäre allerdings eher sehr unsauber.
Hier noch ein echt gutes Openbook zu Linux.
http://www.galileocomputing.de/openbook/linux/
Zum Webseiten gestalten, würde ich übrigens
Bluefish http://bluefish.openoffice.nl/ oder
Quanta+ http://quanta.kdewebdev.org/ empfehlen.
Die haben gegenüber des "Lieblingseditors" noch einige zusätzliche nette Features
Ansonsten noch viel Spaß beim lernen.
hmm.. das ist schon ein sehr merkwürdigs verhalten. naja solange es mit dem G_MODULE_BIND_LOCAL bzw G_MODULE_BIND_MASK flag funktioniert werde ich es dabei belassen. trotzdem danke!
blan
Das hat nix mit Linux zu tun sondern mim compiler. VS macht halt ne Extrawurst weil MS die Entwickler bei sich halten will.
http://www.adp-gmbh.ch/cpp/gcc/create_lib.html
Danke! Es funktioniert nun einwandfrei.
Schade dass dieser Sachverhalt in keinem Pipe-Tutorial stand welche ich gelesen habe.
Noch eine Frage zum Abschluss. Gibt es eine C++ Variante für Pipes. Ich habe einige Wraper gefunden aber war mir nicht sicher welche die beste sein würde. Ich werde mir bei Gelegenheit die boost-lib anschauen.
alternativ, die klassische posix-variante mittels fork und exec:
if (fork()==0) //kindprozess erzeugen
{
//kind durch richtiges programm ersetzen
execl("programm",parameter...);
}
dann kann man noch ein bisschen mehr einflußnehmen als per system.