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.
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 );
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.