首页  >  文章  >  后端开发  >  使用 C 的 `system()` 函数时如何处理参数中的空格?

使用 C 的 `system()` 函数时如何处理参数中的空格?

Linda Hamilton
Linda Hamilton原创
2024-10-30 15:27:26637浏览

How to Handle Spaces in Parameters When Using C  's `system()` Function?

C system() 函数错误,参数中存在空格

问题陈述

在 C 中使用 system() 函数运行可执行文件时参数,如果可执行文件的路径和作为参数传递的文件的路径中都有空格,则会发生错误。错误消息如下:

The filename, directory name, or volume label syntax is incorrect.

说明

system() 函数通过将系统命令传递给 Windows 命令处理器 (cmd) 来执行系统命令。当命令包含空格时,命令处理器会将第一个和最后一个双引号之间的所有内容解释为单个参数。但是,在这种情况下,可执行文件路径周围的双引号和参数文件路径周围的双引号会导致冲突。

解决方案

要解决此问题,需要使用一组额外的双引号必须添加引号以括住整个命令。这样,命令处理器会将这些最外层双引号内的所有内容视为单个参数,即使它包含空格和其他双引号。

<code class="cpp">system("\"\"C:\Users\Adam\Desktop\pdftotext\" -layout \"C:\Users\Adam\Desktop\week 4.pdf\"\"");</code>

附加说明

  • cmd可以将 /S /C 标志添加到 system() 函数调用中,以确保字符串始终被解析为情况 2 场景,其中双引号被视为参数的一部分。
<code class="cpp">system("cmd /S /C \"\"D:\test\" nospaces \"text with spaces\"\"");</code>
  • 使用这种引用机制可以克服可执行文件和参数路径中空格引起的错误。

以上是使用 C 的 `system()` 函数时如何处理参数中的空格?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn