gpt4 book ai didi

Linux 上的 CommandLineToArgvW 等价物

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:16 30 4
gpt4 key购买 nike

我正在寻找与 Windows 的 CommandLineToArgvW 等效的功能.

我有一个字符串,我想按照 bash 的方式完全分解它,包括所有极端情况——即考虑单引号和双引号、反斜杠等,所以拆分a b "c'd""\"e\"f""g\\"h 'i"j' 将导致:

a
b
c'd
"e"f
g\
h
i"j

由于这样的函数已经存在并且被 OS/bash 使用,我假设有一种方法可以调用它,或者至少得到它的源代码,所以我不需要重新发明轮子。

编辑

要回答我为什么需要它,它与生成子进程无关。我想制作一个搜索文本的程序,观察多个正则表达式以任何顺序为真。但是所有的正则表达式都将输入到同一个文本字段中,所以我需要将它们分开。

最佳答案

GNU/Linux 由 free software 组成和 bash是免费软件,因此您可以获得源代码并对其进行改进(并且您应该在 GPL 许可下发布您的改进补丁)。

但是没有公共(public)库可以这样做,因为 shell 的作用是将命令行扩展为 execve(2) 的参数。系统调用(然后转到被调用程序的 main)。

(这在 MS-DOS 中不同,被调用的程序必须扩展其命令行)

函数wordexp(3)接近您可能想要的。

您可能想研究更简单的 shell 的源代码,例如下载 sash-3.7.tar.gz

关于Linux 上的 CommandLineToArgvW 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13481058/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com