在另一个应用程序中使用zsh文件globbing

时间:2015-02-26 23:59:51

标签: c++ c zsh systems-programming

Zsh有惊人的文件通配。我想在另一个应用程序中使用它。我稍微挖了一下zsh代码并找到了函数zglobhttps://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

如果有的话,哪些库包含哪些符号并不完全清楚。那些熟悉这个代码库的人的任何帮助都会非常棒。

0 个答案:

没有答案