Xnec2c Code - Länge des Input Dateinamens

OP #4251898
Lesenswert?
• ▲
▼
Hallo Forum,

ich habe mir vor kurzem das xnec2c Programm für die
Antennensimmulation auf einem x86_64 Rechner unter
OpenSuse 13.1 compiliert.

Das Programm samt Gui scheint soweit zu funktionieren.
Mir ist aber aufgefallen, das nicht alle exampels d.h.
.nec Files liefen, sondern bei einigen eine Fehlermeldung
angezeigt wurde.

Als Ursache stellte sich heraus, dass der Dateiname samt Pfad
länger als 80 Zeichen war.

Fehlermeldung siehe Anhang.

Ich wollte diese Längenbeschränkung ausweiten und habe im Code
gesucht, wo das "infile" definiert wird.

shared.h:extern char infile[81];
shared.c:char infile[81] = "";

fork.c:    retval = Read_Pipe( num_child, infile, 80, FALSE );

Nun zu meiner Frage:

Ich habe die beiden ersten gefundenen Zeilen geändert und die
Länge auf z.B. 161 gesetzt also verdoppelet.
Nun ist mir nicht klar, ob ich auch an der dritten Stelle, d.h.
bei dem Pipe-Aufruf die 80 durch 160 ersetzen muss.

Kann mir jemand diese Frage sachdienlich beantworten.

Danke!

Markus

PS.: Nach meiner Änderung, scheint das Programm weiterhin zu
funktionieren, siehe zweiten Anhang. Ich habe aber nicht im Detail
untersucht, ob der Pipe Übergabeparameter mit dem Wert 80 überhaupt
etwas mit der Länge des Dateinamens zu tun hat.
Angehängte Dateien:
Persönliche Seite #4251938
Lesenswert?
• ▲
▼
Markus W. schrieb:
> Nun ist mir nicht klar, ob ich auch an der dritten Stelle, d.h.
> bei dem Pipe-Aufruf die 80 durch 160 ersetzen muss.

Musst Du.

Besser als mit "magic numbers", d.h. wild in Deinem Code verstreuten 
Zahlen solltest Du mit einem zentralen #define arbeiten.

Das ist z.B. in limits.h als PATH_MAX definiert.

Also:

char infile[PATH_MAX + 1];

...

retval = Read_Pipe( num_child, infile, PATH_MAX, FALSE );
OP #4252056
Lesenswert?
• ▲
▼
Hallo Rufus,

danke für Deine Hinweise.

Ich habe den Code aus dem Web. Es handelt sich um den NEC2
"numeric electromagnetic code" Version 2 Simulator für das
Berechnen von Antennen. Dieser Fortrancode wurde in C übertragen
und es gibt das Programm Xnec2c, das eine GUI (GTK2) für die
nummerische Eingabe und Darstellung der Lösung bereitstellt.

Ich werde Deine Anregungen ergänzen und hoffe, dass es noch weitere
Interessenten gibt, die den Code durchsehen können und diesen
optimieren.

Das Prgramm ist in seiner Art sehr leistungsfähig und ist frei
verfügbar. Programme dieser Art kosten normalerweise sehr viel Geld.

Gruß
Markus

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.