加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何从C安全地转义字符串

发布时间:2020-12-13 19:16:31 所属栏目:Linux 来源:网络整理
导读:我正在编写一个简单的程序来浏览本地网络,并使用“system”将文件名传递给mplayer.但是,有时文件名包含空格或引号. 显然,我可以编写自己的函数来逃避这些,但我不确定哪些角色需要或不需要转义. CRT或linux头文件中是否有一个函数可以安全地转义字符串以传递

我正在编写一个简单的程序来浏览本地网络,并使用“system”将文件名传递给mplayer.但是,有时文件名包含空格或引号.
显然,我可以编写自己的函数来逃避这些,但我不确定哪些角色需要或不需要转义.

CRT或linux头文件中是否有一个函数可以安全地转义字符串以传递给命令行?

最佳答案
没有一种解决方案可以在任何地方使用,因为不同的shell对特殊字符是什么以及如何解释它们有不同的想法.对于bash,你可以用””’替换文件名中的每个单引号后用单引号包围整个文件名(第一个单引号停止顺序,“’”将文字单引号附加到字符串,最后的单引号再次启动引用的序列).更好的解决方案是找到一种在不使用系统的情况下调用程序的方法,例如使用带有一个exec函数的fork,这样就没有shell插值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读