sprintf schreibt nicht in einen Stream (wie fprintf oder printf), sondern in einen Textbuffer. Du musst aber selbst dafür sorgen, dass der Textbuffer lang genug ist. Printf schreibt da sonst hemmungslos drüber, was in einem Segfault enden würde.+Fuss+ hat geschrieben:also ist das so wie wenn ich etwas ausgebe und das Ausgegebene in einen String einlese?
GTK+
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: GTK+
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: GTK+
sprintf() gehört in die Klasse der Bösen Funktionen, die die Größe eines Puffers nicht als parameter nehmen, und ist einem Atemzug mit Sicherheitskillern wie strcpy(), gets() zu nennen.Xin hat geschrieben:sprintf schreibt nicht in einen Stream (wie fprintf oder printf), sondern in einen Textbuffer. Du musst aber selbst dafür sorgen, dass der Textbuffer lang genug ist. Printf schreibt da sonst hemmungslos drüber, was in einem Segfault enden würde.+Fuss+ hat geschrieben:also ist das so wie wenn ich etwas ausgebe und das Ausgegebene in einen String einlese?
Wenn man es verwendet, sollte man _SEHR_ vorsichtig sein, vor allem mit Daten die vom Benutzer kommen:
http://en.wikipedia.org/wiki/Format_str ... rabilities
Haters gonna hate, potatoes gonna potate.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: GTK+
Natürlich muss man vorsichtig sein, aber %d kann keine Zahl erstellen, die größer als 12 Zeichen ist.fat-lobyte hat geschrieben:sprintf() gehört in die Klasse der Bösen Funktionen, die die Größe eines Puffers nicht als parameter nehmen, und ist einem Atemzug mit Sicherheitskillern wie strcpy(), gets() zu nennen.
Wenn man es verwendet, sollte man _SEHR_ vorsichtig sein, vor allem mit Daten die vom Benutzer kommen:
http://en.wikipedia.org/wiki/Format_str ... rabilities
Die Größe des Buffers ist vorher ausrechenbar, wohingegen scanf() dem Programmierer gar keine Chance lässt.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: GTK+
NOTFALL:
SPEICHERT KATE DIE DATEIEN IRGENDWO ZWISCHEN?
HABE ICH EINE CHANCE AN EINE ALTE DATEI ZU KOMMEN???
ICH HABE GERADE GEMERKT, DASS VON MEINEM PROGRAMM (BISSCHEN MEHR ALS 400 ZEILEN) NUR NOCH DIE ERSTEN 116 ÜBRIG SIND!!!
SO EINE SCHEISSE!

SPEICHERT KATE DIE DATEIEN IRGENDWO ZWISCHEN?
HABE ICH EINE CHANCE AN EINE ALTE DATEI ZU KOMMEN???
ICH HABE GERADE GEMERKT, DASS VON MEINEM PROGRAMM (BISSCHEN MEHR ALS 400 ZEILEN) NUR NOCH DIE ERSTEN 116 ÜBRIG SIND!!!
SO EINE SCHEISSE!



- fat-lobyte
- Beiträge: 1398
- Registriert: Sa Jul 05, 2008 12:23 pm
- Wohnort: ::1
- Kontaktdaten:
Re: GTK+
Kate speichert sogar backup dateien. normalerweise wird dem ursprünglichen dateinamen ein ~ angehängt und im selben verzeichnis gespeichert.+Fuss+ hat geschrieben:NOTFALL:
SPEICHERT KATE DIE DATEIEN IRGENDWO ZWISCHEN?
HABE ICH EINE CHANCE AN EINE ALTE DATEI ZU KOMMEN???
ICH HABE GERADE GEMERKT, DASS VON MEINEM PROGRAMM (BISSCHEN MEHR ALS 400 ZEILEN) NUR NOCH DIE ERSTEN 116 ÜBRIG SIND!!!
SO EINE SCHEISSE!![]()
![]()
Ansonsten: Settings -> Configure Kate -> Open/Save, dann unter "Backup and Save".
Haters gonna hate, potatoes gonna potate.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: GTK+
So ärgerlich das ist, doch ist es eben auch die Möglichkeit das bei der Entwicklung Gelernte erneut sinnvoll umzusetzen.
Und auch wenn Dir 400 Zeilen viel vorkommen, weil Du lernst, Du wirst es in 300 Zeilen schneller nachprogrammiert haben.
Mir ist das auch schon bei größeren Projekten passiert - um genau zu sein: das Projekt war fertig kompiliert, es funktionierte perfekt und durch einen vorher gemachten Fehelr schmierte der Rechner während des Speicherns ab. Das Projekt war für einen Kunden: Ich konnte mit dem Executable beweisen, dass ich es programmiert habe - aber hatte keinen Sourceceode mehr.
Was ich in 2 Wochen geschrieben hatte, hatte ich in 2 Tagen besser neu geschrieben und der Kunde lobte die Sourcecodequaiität.
Und auch wenn Dir 400 Zeilen viel vorkommen, weil Du lernst, Du wirst es in 300 Zeilen schneller nachprogrammiert haben.
Mir ist das auch schon bei größeren Projekten passiert - um genau zu sein: das Projekt war fertig kompiliert, es funktionierte perfekt und durch einen vorher gemachten Fehelr schmierte der Rechner während des Speicherns ab. Das Projekt war für einen Kunden: Ich konnte mit dem Executable beweisen, dass ich es programmiert habe - aber hatte keinen Sourceceode mehr.
Was ich in 2 Wochen geschrieben hatte, hatte ich in 2 Tagen besser neu geschrieben und der Kunde lobte die Sourcecodequaiität.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: GTK+
ich schreibe auch neu, mir bleibt ja auch nichts anderes übrig.
Jetzt kommen bessere Variablennamen, mehr Kommentare und schwierige Funktionen (die man sich nicht so schnell ausdenken kann) werden stichwortartig auf papier festgehalten.
Außerdem habe ich schon wieder eine Idee für ein Zwischenprojekt.
MfG Fuss
Jetzt kommen bessere Variablennamen, mehr Kommentare und schwierige Funktionen (die man sich nicht so schnell ausdenken kann) werden stichwortartig auf papier festgehalten.
Außerdem habe ich schon wieder eine Idee für ein Zwischenprojekt.
MfG Fuss