Zsh有惊人的文件通配。我想在另一个应用程序中使用它。我稍微挖了一下zsh代码并找到了函数zglob
:https://github.com/zsh-users/zsh/blob/c96606cc0617b85d3bf0784d0bf1ecd71e44cbd7/Src/glob.c#L1152-L1158
这看起来像我想要使用的,但有一些并发症。 zglob采用的前两个参数是内部zsh类型,因此不能立即清楚如何构造一个LinkList和一个给定char *的LinkNode,它表示我想要的字符串。
理想情况下,我可以使用以下签名编写函数:
char** do_the_glob(char* path)
所以,给定一个表示路径模式的char *(或std :: string),我可以得到一个带有模式解析到的路径的char **(或std :: vector)吗?
另外,如果我构建zsh代码,我会得到大量的库:
$ pwd
~/git/zsh
$ find . -name "*.so"
./Src/Builtins/rlimits.so
./Src/Builtins/sched.so
./Src/Modules/attr.so
./Src/Modules/cap.so
./Src/Modules/clone.so
./Src/Modules/curses.so
./Src/Modules/datetime.so
./Src/Modules/db_gdbm.so
./Src/Modules/example.so
./Src/Modules/files.so
./Src/Modules/langinfo.so
./Src/Modules/mapfile.so
./Src/Modules/mathfunc.so
./Src/Modules/newuser.so
./Src/Modules/parameter.so
./Src/Modules/regex.so
./Src/Modules/socket.so
./Src/Modules/stat.so
./Src/Modules/system.so
./Src/Modules/tcp.so
./Src/Modules/termcap.so
./Src/Modules/terminfo.so
./Src/Modules/zftp.so
./Src/Modules/zprof.so
./Src/Modules/zpty.so
./Src/Modules/zselect.so
./Src/Modules/zutil.so
./Src/Zle/compctl.so
./Src/Zle/complete.so
./Src/Zle/complist.so
./Src/Zle/computil.so
./Src/Zle/deltochar.so
./Src/Zle/zle.so
./Src/Zle/zleparameter.so
如果有的话,哪些库包含哪些符号并不完全清楚。那些熟悉这个代码库的人的任何帮助都会非常棒。