Z33di schrieb:
...das war die lange Fassung.
Aber auch nicht klarer. Anscheinend willst du zunächst eine eingegebene IP-Adresse auf Gültigkeit überprüfen. Das geht in Java z.B. indem du versuchtst ein java.net.InetAddress Objekt anzulegen. Ist die Adresse ungültig, fliegt eine Exception.
Was du sonst noch vorhast ist mir nicht klar. Den Plan, C++ in Java "einzubetten" würde ich jedenfalls ganz schnell wieder vergessen. Das was du willst, geht garantiert auch direkt mit Java.
ha problem solved!
hab bei tv.usec sekunden mitgegeben... also statt
tv.sec = 3;
tv.usec = 0;
hab ich
tv.sec = 0;
tv.usec = 3000*1000;
mitgegeben...
nun gehts
danke
Hallo und danke schonmal für die Antwort...
DrGreenthumb schrieb:
mplayer beendet sich doch sobald die Datei durch ist
Nicht wenn er im Idle-Mode läuft...
Und auch wenn er im Normalbetrieb läuft und sich dann beendet (das wäre im Grunde auch kein Problem) wüßte ich keinen Weg um abzufragen ob der gestartete mplayer-Prozess noch läuft... (hatte ich auch schon probiert) Der Stream den ich ja von popen() zurückbekomme bleibt leider auch geöffnet wenn das Programm schon beendet ist - nur läuft er dann halt ins leere...
DrGreenthumb schrieb:
Für die Steuerung solltest du dir mal die mplayer-Argumente -input bzw. -slave ansehen.
Hab ich - zumindest den Slave-Modus - sonst hätte ich den Player ja bisher garnicht Steuern können... Und wie gesagt, die Steuerung, bzw. die Befehle an sich sind nicht das Problem... Sondern wie ich sowohl Befehle hineingeben und auch ausgaben herauslesen kann...
Hoffe immernoch auf Hilfe...
the[V]oid schrieb:
*** glibc detected *** ./test: free(): invalid pointer: 0xb7db5150 ***
ist der speicher auf den betreffender pointer zeigt auch mit malloc()/realloc() alloziert worden? falls mit new dann mit delete freigeben. der fehler selbst kann ja eigentlich nur in playthread() liegen.
Hallo allerseits,
ich bin Linux Neuling und habe ein Problem mit gcc. Und zwar handelt es sich um einen PC auf dem ein Update von Suse 9.2 nach OpenSuse 10.2 gemacht wurde, das hat auch ohne Probleme funtkioniert. Nur laeuft jetzt der Compiler nicht mehr. Beim Versuch ein einfaches Testprogramm zu kompilieren kommt folgende Fehlermeldung:
gcc: installation problem: cannot exec "cc1": No such file or directory
Daraufhin hab ich mir mal den installierten gcc genauer angeschaut. Wenn ich gcc direkt nach seiner Version frage (gcc --version) sagt er mir 3.3.4, wenn ich mir allerdings unter Yast die installierte Version anschaue steht da auf einmal 4.1.2 und siehe da, unter /usr/lib/gcc/..version../4.1.2 liegt dann auch die vermisste "cc1".
Da ist wohl beim updaten was schief gegangen. Kann mir jmd sagen, wie ich gcc dazu bringe den aktuellen pfad zu benutzen um die "cc1" zu finden?
Vielen Dank schon mal!
Viele Gruesse
j05y
Hi ihr!
Er hat ja vorher auch fast 18000 Threads mit dem gleichen Code geöffnet, am Stack kann es also nicht liegen. Das mit der Übergabe des t sollte auch keine Rolle spielen, nur einen Anhaltswert liefern.
Das Problem ist weiterhin das Gleiche - warum werden nur 381 Threads (zu vprher 18000) geöffnet und dann ein Speicherproblem angezeigt?
Liebe Grüße, Marc
GCC'ler schrieb:
packer schrieb:
wie wärs mit #pragma pack(x) ? das funktioniert auch mit beiden compilern
neuerdings, der GCC war nicht immer so schlau Ich glaub er sieht es aber noch immer als "unschön" an. Selbiges gilt für #pragma once.
Was heißt hier schlau? Ich finde es unschön, solche proprietären Konstrukte zu unterstützen. Das verwässert nur den Standard. Ich finde es toll, dass die GCC-Leute versuchen, möglichst nah an den Standard zu kommen und sogar Inkompatibilitäten mit ihren eigenen Versionen akzeptieren.
OSS ist einfach unheimlich primitiv, kein Wunder, dass das API schön simpel ist.
Für portable Software würde ich weder ALSA noch OSS verwenden, sondern irgendwas, was auf einem höheren Level arbeitet. Darum ist mir das ALSA-API auch egal - sowas verwendet man sinnvollerweise ohnehin nicht direkt.
metalchuck schrieb:
Danke! Das war der entscheidende Trick. Ich arbeite normalerweise selten direkt in C, daher ist mir das natürlich nicht eingefallen...
Zu deiner Anmerkung: Der Output soll in ein GUI-Textfeld geschrieben werden, obiger Code war nur zu Demonstrationszwecken. Aber ich habe da noch ne Frage zu. Wie soll man mich auf diese Weise hacken können? Bräuchte man dazu nicht nen Buffer overflow? Der kann doch hier nicht entstehen, weil ich ja blockweise auslese, oder?
Ob es praktisch wirklich möglich ist, weiss ich nicht. Aber überleg mal, was passiert wenn ein %d oder %s im output des Programms auftauchen.
Falls du Qt für deine Gui verwendest dann geht alles viel einfacher mit QProcess. Damit kannst du sicher unt einfach einen Subprozess ausführen.
Guten Abend,
gibt eine möglichkeit den curser/bildschirmausgabe nur für das jeweilige fenster auszuschalten unter unix und mit ncurses ?.
Bin dabei eine Oberfläche zu schreiben und wenn ich am anfang alles ausschalte kann ich zwischen durch ja nichts eingeben ...z,b für dateneingabe.
Mfg Michael
ich hab meine eigene Makefile Schablone, die ich benuntze, ähnlich zu der ultimativen Makefile. Bei "ernsten" Projekten verwende ich (auschließlich) das autotools Buildsystem, denn die Tools sparen einem sehr viel Zeit bei der Erstellung von plattform übergreifenden configure Skripten und Makefiles. Am Anfang sehen sie recht kompliziert aus, die Makefile.am unverständlich, aber mit ein bisschen Übung kann man auch komplexere Sachen damit bauen.
An meiner Firma wird auch cmake verwendet, ich habe allerdings cmake selber nie benutzt also kann ich keinen Vergleich zwischen autotools und cmake stellen.
Mir wurde gerade mitgeteilt, daß ich nur wlan-frames (also 80211 frames) zurück bekomme, wenn ich im Monitor-Modus arbeite. Normalerweise bekommt man Ethernet-Frames! Ich weis nicht ob das hier allgemein bekannt war, nur ich habe vergessen das zu erwähnen (ohh mann sag das doch gleich) und ich jetzt die Dummbatz-Mütze aufziehen muss? Kann das jemand bestätigen.
Wenn es allgemein bekannt war, vielleicht hilft diese Information anderen Newbies, wenn sie mit diesem Thema sich einarbeiten müssen.
Aber ich muss es erst noch ausprobieren, denn eigentlich habe ich die empfangenen Packete auch schon zu Ethernet-Frames gecastet.
Gruss Christian
Ich habe ein sehr interessantes Linux-tool gefunden, dass auch Pluginunterstützung hat. Ich würde auch gerne ein Plugin schreiben, aber ich bekomme einfach keine "saubere" Bibliothek (ein sauberes Projekt hin) hin, bzw. es ist doch alles sehr um die Ecke gedacht.
Ich benutze KDevelop 3.5.0.
Die Plugins sitzen in tool/plugins/name_plugin/.
Es handelt sich um libtool libraries in pkglib
Meine bisherige Lösung sieht folgendermaßen aus:
1. Quellcode extrahieren
2. Mit KDevelop als Generic C Application (automake-based) importieren
3. Im Automake-Manager zu den Plugins gehen und dort den Quellcode eines Plugins in meinen Code umschreiben.
4. Mit Hilfe vom Automake-Manager von KDev. headerdateien aus ../../include/ aus dem Pluginverzeichnis heraus.verlinken
5. Manuell zusätzliche header durch ln -s ../../include/missing aus dem Pluginverzeichnis heraus.verlinken
6. ganzes Projekt ./configure dann speziell nochmal das (mein) target plugin erstellen
Ich finde das alles ziemlich umständlich und irgendwie habe ich das gefühl, dass die OpenSource-Welt bestimmt einen Weg benutzt der wesentlich komfortabler ist bzw.. bei dem sich der relevante plugin-source auch besser aus dem restlichen Projekt herauslösen lässt um ihn zum beispiel zu publizieren ... Gibt es da etwas ?
Also in der man-page von sem_open ist ein Verweis auf die man-page von sem_overview. Und dort steht:
Linking
Programs using the POSIX semaphores API must be compiled with cc -lrt to link against the real-time library, librt.
Und wie auch daraus zu ersehen ist, heißt es einfach nur, dass das zu erstellende Programm die Bibliothek rt benutzen soll. Mit "ldd einprogram" kannst du dir alle Bibliotheken ausgeben lassen, die ein Programm benötigt.