2017-06-27 2 views
-1

argv[0] ist der vollständige Pfad der Datei mit der Erweiterung in Netbeans, aber wenn das gleiche Stück Code in Sublime Text ausgeführt wird gibt es Ausgabe mit einem Schrägstrich und ohne eine Dateierweiterung.Ändern Sie argv [0] in Sublime-Text

printf("%s\n",argv[0]); 

Ausgabe in Netbeans:

F:\Projects\C\Xnet\Xnet\dist\Debug\MinGW-Windows\StartX.exe 

Ausgabe in Sublime Text:

F:\Projects\C\Xnet\Xnet/StartX 

Warum? Wie ändere ich das in Sublime Text, um das gleiche Ergebnis wie in Netbeans zu erhalten?

+5

Warum nicht? Beide sind gültig. Es liegt an dem Code, der das Programm startet, um 'argv [0]' zu setzen. Das einzige Problem ist mit Ihren Erwartungen. Was Sie erwartet haben, ist nicht unvernünftig, aber es ist nicht so, wie die Dinge tatsächlich funktionieren. –

+1

Warum ist es ein Problem? Was willst du damit machen? Es gibt keinen Standard für 'argv [0]', nur Konventionen. – Boiethios

+0

@Boietios Es sollte "F: \ Projekte \ C \ Xnet \ Xnet \ StartX" nicht "F: \ Projekte \ C \ Xnet \ Xnet/StartX" sein. Warum der Schrägstrich vor dem Dateinamen? Ist es im erhabenen Text normal? –

Antwort

0

Schließlich denke ich, dass ich etwas Ahnung habe. Ich habe die Build-System-Option im erhabenen Text geändert.

{ 
"cmd" : "gcc $file_name -o ${file_base_name}", 
"selector" : "source.c", 
"shell" : true, 
"working_dir" : "$file_path", 
"variants": 
    [ 
    { 
     "name": "Run", 
     "cmd": "${file_base_name}.exe" 
    } 
    ] 
} 

Jetzt argv [0] den Namen einer Datei nur mit der Erweiterung (filename.exe)

+0

Geben Sie keine Ahnung, aber nur volle gültige Antwort. Es scheint, dass '" cmd "' in '" variants "' der Schlüssel Ihrer Frage ist: sobald Sie finden, wie man es für Ihren Zweck ändert, bitte posten Sie Ihre Antwort mit Erklärung. – Boiethios

+0

@Boiethios Ich weiß nicht, wie man "//" an $ file_path anhängen kann. Ich kenne das nicht ... –