Basic-Progamm von C aus starten (war Bitte um kleine Änderung)

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Mr. Jones
Beiträge: 4
Registriert: So Feb 13, 2022 7:09 pm

Basic-Progamm von C aus starten (war Bitte um kleine Änderung)

Beitrag von Mr. Jones » So Feb 13, 2022 7:22 pm

Hallo zusammen,

ich habe leider keine Ahnung von C-Programmierung und brauche deshalb Hilfe bei einem völlig banalen Problem.
Mein zusammengefrickeltes kleines C Programm funktioniert aber hat eine kleine Merkwürdigkeit die noch behoben werden müsste.
Ich möchte gerne einen Basic-Interpreter direkt mit einem Basic Programm laden aber nur einen "Befehl" starten.
Zur Zeit muss ich folgendes eingeben:

basic GAME.BAS

Ich habe es inzwischen geschafft ein kleines C-Programm zu schreiben was zwar letztendlich genau das macht aber ich muss 8 mal eine Taste drücken damit das Argument auch berücksichtigt wird. 8 mal weil eben die Datei GAME.BAS insgesamt aus 8 Stellen besteht.
Ich weiß dass das totaler Schwachsinn ist aber leider habe ich es nur so hinbekommen.
Kann mir jemand schreiben wie ich den nachfolgenden Code umschreiben muss um das Resultat direkt zu bekommen?

Code: Alles auswählen

main(argv)
  char ** argv;
{
  char ** _getargs();
  argv = _getargs(0, "GAME.BAS");
  execv("basic",argv,0);
}


Vielen Dank schon mal im voraus!!!

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

Re: Bitte um kleine Änderung

Beitrag von Xin » So Feb 13, 2022 8:05 pm

Wer oder was kompiliert das denn!?
Wo kommt das Programm her? Das ist ja ein Stil, der schon lange verboten gehört. :-D

Wie sieht's damit aus?

Code: Alles auswählen

#include <unistd.h> // Linux

int main( int argc, char ** argv )
{
  char * myArgv[] = { "GAME.BAS", 0 };
  evecvp( "basic", myArgv );
};
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.

Mr. Jones
Beiträge: 4
Registriert: So Feb 13, 2022 7:09 pm

Re: Basic-Progamm von C aus starten (war Bitte um kleine Änderung)

Beitrag von Mr. Jones » So Feb 13, 2022 8:27 pm

Hallo @Xin,

das ist ein alter CP/M C Compiler von der Firma HiTech.

Viele Dank für Deine Hilfe aber leider spuckt der Compiler bei Deiner Korrektur eine Fehlermeldung aus .

Can't initialise auto aggregates

Mr. Jones
Beiträge: 4
Registriert: So Feb 13, 2022 7:09 pm

Re: Bitte um kleine Änderung

Beitrag von Mr. Jones » So Feb 13, 2022 8:41 pm

Xin hat geschrieben:
So Feb 13, 2022 8:05 pm
Wer oder was kompiliert das denn!?
Wo kommt das Programm her? Das ist ja ein Stil, der schon lange verboten gehört. :-D
Ja, das ist das Problem. Die Syntax kann ich von den aktuellen Stil nicht einfach übernehmen.

Die Dokumentation von Hi Tech findest Du hier:

https://github.com/agn453/HI-TECH-Z80-C/tree/master/doc

wärst Du so nett und schaust Dir das mal an?

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

Re: Bitte um kleine Änderung

Beitrag von Xin » So Feb 13, 2022 11:26 pm

Mr. Jones hat geschrieben:
So Feb 13, 2022 8:41 pm
Xin hat geschrieben:
So Feb 13, 2022 8:05 pm
Wer oder was kompiliert das denn!?
Wo kommt das Programm her? Das ist ja ein Stil, der schon lange verboten gehört. :-D
Ja, das ist das Problem. Die Syntax kann ich von den aktuellen Stil nicht einfach übernehmen.

Die Dokumentation von Hi Tech findest Du hier:

https://github.com/agn453/HI-TECH-Z80-C/tree/master/doc
Ähh... okay... 1989... ich habe 1994 mit C angefangen, wenn ich mich recht entsinne...
Mr. Jones hat geschrieben:
So Feb 13, 2022 8:41 pm
wärst Du so nett und schaust Dir das mal an?
Nein. Mit der Fehlermeldung kann ich nix anfangen, aber ich habe einen Verdacht und vermutlich spuckt der Compiler auch noch Zeilennummern aus.

Besteht die Chance, dass man das mal über Discord/Skype/Teamviewer macht, bevor ich mich jetzt in einen 1989er C-Compiler einlese, um Dir dann geratene Quellcodes zu schicken?
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.

Mr. Jones
Beiträge: 4
Registriert: So Feb 13, 2022 7:09 pm

Re: Basic-Progamm von C aus starten (war Bitte um kleine Änderung)

Beitrag von Mr. Jones » Mo Feb 14, 2022 6:10 pm

Vielen Dank für die Unterstützung!

Jetzt klappt es endlich!

Nur zur Vervollständigung des Threads hier die Lösung:

Code: Alles auswählen

main()
{
   execl( "basic", "GAME.BAS", "GAME.BAS", 0 );
}

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

Re: Basic-Progamm von C aus starten (war Bitte um kleine Änderung)

Beitrag von Xin » Mo Feb 14, 2022 7:12 pm

Mr. Jones hat geschrieben:
Mo Feb 14, 2022 6:10 pm
Vielen Dank für die Unterstützung!

Jetzt klappt es endlich!

Nur zur Vervollständigung des Threads hier die Lösung:

Code: Alles auswählen

main()
{
   execl( "basic", "GAME.BAS", "GAME.BAS", 0 );
}
Hier wäre als erstes Argument nochmal "basic" gefragt.

Code: Alles auswählen

   execl( "basic", "basic", "GAME.BAS", 0 );
Du rufst das Programm "basic" und teilst ihm dann mit, dass Du es unter dem Namen "basic" gerufen hast mit dem 1. Parameter "GAME.BAS".

Zugegenermaßen eher eine Formalität, wenn's schon läuft.
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.

Antworten