Du hast meinen etwas zynischen Versuch Dich auf die Sinnlosigkeit Deiner Fragen hinzuweisen verstanden.
zu 1. In welcher Sprache? In Standard-C/C++ genauso wie unter Windows/DOS!
zu 3. In welcher Sprache? WELCHE Textdatei?! "Die Textdatei" ist grad bei mir im Vim offen. "Eine Textdatei" speichert man indem man sie mit fopen schreibend öffnet ("w" oder "a") und dann mit fprintf hinein schreibt.
EDIT: In C++ natürlich mit ofstream und << statt fopen und fprintf.
Und das nächste Mal stell bitte Fragen die man auf Anhieb beantworten kann
Hallo Leute,
nach ein paar Versuchen ist es mir gelungen, die Konsolenausgabe so zu manipulieren, wie ich mir das wünsche, ich habe für alle den Tip, mal unter
http://rrbrandt.dyndns.org:60000/docs/tut/redes/ansi.php
nachzuschauen.
Das ganze sieht dann unter C++ so aus:
cout << "\33[3A"; // für drei Zeilen hoch
cout << "\33[70D "; // für 70 zeichen nach links, stopt bei Zeilenanfang
Jetzt ist das schön anzuschauen, aber wenn ich die stdout-stream auf eine Datei umlenke (z.B.: './a.out > temp'), kommt das da natürlich nicht so raus. So, jetzt endlich meine Frage: Kann mein Programm erkennen, ob der Ausgabestream auf eine Datei umgelenkt ist? Ich denke da an sowas ähnliches, wie Argumente an das ausfürende Program übergeben.... (argv, argc, etc.).
Viele Grüsse,
Stephan
p.s. sorry für zunächst falsches Forum
DrGreenthumb schrieb:
du brauchst statische versionen der libraries. wenn du nicht schon die .a-dateien auf dem rechner hast, musst du sie erst selbst kompilieren.
Naja..ok danke.
Ok Fehler gefunden:
Mein Makefile habe ich aus Versehen unter dem Namen "make" gespeichert.
Irgendwie hat er trotzdem den make Befehl ausgeführt, aber wohl alles falsch interpretiert.
"make" nach "makefile" umbenannt und es ging
Farbiger Text auf der Console geht mit ANSI-Escape-Sequenzen:
echo -e '\33[32mgrün \33[31mrot\33[0m'
Das funktioniert sogar unter DOS (wenn ANSI.SYS geladen ist) und mit Cygwin unter WindowsTM - also weitestgehend plattformunabhängig!
Martin G schrieb:
Dann versuch' doch mal, "test.wav" mit einem WAV-fähigen Programm abzuspielen!
Ich meine mit alsaplay bzw. play ging das sogar... -- mit dem WMP sicher nicht.
Martin G schrieb:
Natürlich kann man mit "cat" Audiodateien aufzeichnen und abspielen, aber nur als reine Audiodaten, nicht als WAVE-Format.
Einen RIFF/WAVE-Header davorklatschen sollte doch nicht so schwer sein...
Byte schrieb:
TriPhoenix schrieb:
Das ist derslebe relative Sprung. Bei dir liegt nur der Sprungbefehl woanders und daher ist das Ziel auch woanders. In beiden Fällen (bei dir und bei mir) wird 0xffffe400 nicht als Adresse, sondern als relativer Versatz aufgefasst.
Ich meine ja nur das in beiden Fällen der Hexwert gleich ist, nämlich e8 fc e3 ff ff, dann müsste eigendlich auch der Assembler code der dahinter steht gleich sein oder nicht ?
Nein bei nem relativen Sprung eben nicht. 0xffffe400 heißt "rufe das auf, was von hier auf 0x1c00 Bytes hinter mir liegt", und dann hängt die dargestellte Zieladresse davon ab, wo ich bin.
TriPhoenix schrieb:
%gs:0x10 wird in der Tat von der glibc gesetzt, nicht vom Kernel.
Aber ich frage mich noch immer, woher die den Wert für gs hat. Werde mir den Code vielleicht noch mal ansehen.
Viel Spaß, ich habe es für ne Viertelstunde versucht, habe mich in komischen headerdateien zwischen Makros, #ifdefs und ähnlichem verheddert und den Spaß dran verloren *G* Soviel habe ich rausgefunden: %gs enthält eine Threadlokale Struktur, in dieser Struktur ist das für uns interessante Element "sysinfo". Es wird wohl in der Datei sysdeps/generic/dl-sysdep.c geholt. Es kommt aus einem _dl_auxv und an dem Punkt darfst du dann Verrat mal, wies weitergeht
Ja, xine kann mit der '-broadcast' Option und der 'slave://' MRL einen server-client Betrieb aufzunehmen...
...das andere was ich mir Anschauen wuerde waere ffmpeg...implementiert auch ein server Model...und dabei kann es verschiedene stream-Formate benutzen - das ist doch das was gemeint war, oder?
~chabayo
Gibt es eine Möglichkeit die CPU-Takte genau eine Prozesses zu zählen? Die Takte mit RDTSC auszulesen bringt mir leider nicht viel, da es genauso wie die Millisekunden von äusseren Einflüssen abhängig sind.
Gibt es vielleicht innerhalb des Kernels Funktionen dafür?
Danke!
@kingruedi:
Wie schon gesagt halte ich die Namen mit __ davor generell seehr vorsichtig. Schon klar dass wenn ich sowas nutze, es nur mit g++ machen kann, ABER...
Wenn solche Namen schon so kryptisch sind, wer sagt mir dass es die Klasse bei der nächsten (vorherigen, ...) GCC-Release überhaupt noch gibt?
VIELEN VIELEN DANK!!!!!
Ich hab wirklich alle möglichen Anleitungen zu C die ich gefunden habe durchsucht... das ist das ERSTE was mal wirklich funktioniert.
Zwei kleine Fräglein hätt ich aber noch...
1. Das scheint nicht auf allen Linux-Systemen zu funktionieren (bei welchen funktioniert es denn nicht und wie erkenne ich das im Programm?)
2. Kann ich irgendwie die Breite und Höhe (also Zeilen- und Spaltenzahl) der Konsole ermitteln? Das wäre noch ziemlich hilfreich.
ProgChild schrieb:
Das geht mit opendir und readdir.
Man opendir
Alternativ kannst du auch das Programm find benutzten.
sh> find /workspace/bin
Bei find würde ich aber um den Operator -name erweitern.
locate ist auch gut und meist schneller. Der Nachteil ist, wenn die Datei frisch geschrieben wurde ist updatedb noch nicht darübergelaufen, und es findet die Datei nicht. Updatedb durchsucht die Festplatte und schreibt die Dateien in eine Datenbank welche locate dann nutzt (geschieht meist als Cronjob).
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.