GTK+

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+

Beitrag von Xin » Sa Jan 31, 2009 11:54 am

+Fuss+ hat geschrieben:also ist das so wie wenn ich etwas ausgebe und das Ausgegebene in einen String einlese?
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.
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.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: GTK+

Beitrag von fat-lobyte » So Feb 01, 2009 2:13 am

Xin hat geschrieben:
+Fuss+ hat geschrieben:also ist das so wie wenn ich etwas ausgebe und das Ausgegebene in einen String einlese?
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.
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
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » So Feb 01, 2009 10:23 am

Die Daten die vom Benutzer kommen können dank Adjustment nicht größer als der Wert 60 sein.
ich hab die Chars als [4]

Das ist wahrscheinlich wieder so eine Sache wie 'goto' 'scanf' etc.

MfG Fuss

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+

Beitrag von Xin » So Feb 01, 2009 10:53 am

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
Natürlich muss man vorsichtig sein, aber %d kann keine Zahl erstellen, die größer als 12 Zeichen ist.
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.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » So Feb 01, 2009 6:26 pm

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! :evil: :evil: :evil:

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: GTK+

Beitrag von fat-lobyte » So Feb 01, 2009 6:31 pm

+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! :evil: :evil: :evil:
Kate speichert sogar backup dateien. normalerweise wird dem ursprünglichen dateinamen ein ~ angehängt und im selben verzeichnis gespeichert.
Ansonsten: Settings -> Configure Kate -> Open/Save, dann unter "Backup and Save".
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » So Feb 01, 2009 6:35 pm

Die Datei mit dem ~ am Ende hat auch nur 116 zeilen von 400

unter Open/Save gibt es kein Backup etc.

:cry: :cry: :cry:

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+

Beitrag von Xin » So Feb 01, 2009 8:08 pm

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.
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.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+

Beitrag von +Fuss+ » So Feb 01, 2009 8:17 pm

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

Antworten