Apabila menggunakan fungsi system() dalam C untuk menjalankan boleh laku dengan parameter, ralat berlaku jika terdapat ruang dalam kedua-dua laluan boleh laku dan laluan fail yang diluluskan sebagai parameter. Mesej ralat berbunyi:
The filename, directory name, or volume label syntax is incorrect.
Fungsi sistem() melaksanakan perintah sistem dengan menghantarnya kepada pemproses arahan Windows (cmd). Apabila arahan mengandungi ruang, pemproses arahan mentafsirkan segala-galanya antara petikan berganda pertama dan terakhir sebagai satu hujah. Walau bagaimanapun, dalam kes ini, petikan berganda di sekitar laluan boleh laku dan petikan berganda di sekitar laluan fail parameter menyebabkan konflik.
Untuk menyelesaikan isu, set tambahan berganda petikan mesti ditambah untuk melampirkan keseluruhan arahan. Dengan cara ini, pemproses arahan menganggap segala-galanya dalam petikan berganda terluar ini sebagai satu hujah, walaupun ia mengandungi ruang dan petikan berganda lain.
<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>
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ruang dalam Parameter Apabila Menggunakan Fungsi `system()` C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!