Bei Verwendung der system()-Funktion in C zum Ausführen einer ausführbaren Datei mit Parametern tritt ein Fehler auf, wenn sowohl im Pfad der ausführbaren Datei als auch im Pfad einer als Parameter übergebenen Datei Leerzeichen vorhanden sind. Die Fehlermeldung lautet:
The filename, directory name, or volume label syntax is incorrect.
Die Funktion system() führt Systembefehle aus, indem sie sie an den Windows-Befehlsprozessor (cmd) übergibt. Wenn der Befehl Leerzeichen enthält, interpretiert der Befehlsprozessor alles zwischen dem ersten und dem letzten doppelten Anführungszeichen als ein einzelnes Argument. In diesem Fall verursachen jedoch die doppelten Anführungszeichen um den Pfad der ausführbaren Datei und die doppelten Anführungszeichen um den Pfad der Parameterdatei einen Konflikt.
Um das Problem zu beheben, ist ein zusätzlicher Satz doppelter Anführungszeichen erforderlich Anführungszeichen müssen hinzugefügt werden, um den gesamten Befehl einzuschließen. Auf diese Weise behandelt der Befehlsprozessor alles innerhalb dieser äußersten doppelten Anführungszeichen als ein einziges Argument, auch wenn es Leerzeichen und andere doppelte Anführungszeichen enthält.
<code class="cpp">system("\"\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"\"");</code>
<code class="cpp">system("cmd /S /C \"\"D:\test\" nospaces \"text with spaces\"\"");</code>
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Leerzeichen in Parametern um, wenn ich die Funktion „system()' von C verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!