我正在使用glob函数来实现自动完成功能。我告诉你这个问题,因为很难解释:
matched = ~/.tcsh
glob(matched, 0, NULL, &pglob);
glob将所有匹配的文件放在char **中,当我打印它时,我有:
case[0] = .tcshrc
case[1] =
我应该.tcshrc~
以防[1],但没有什么= S,我看过这样的标志“GLOB_TILDE”“
glob(matched, GLOB_TILDE, NULL, &pglob);
但它没有改变任何东西!有人能帮助我吗?
答案 0 :(得分:1)
{~1}}标志仅在〜出现在glob的开头时影响输出。见这里:
http://www.gnu.org/s/libc/manual/html_node/More-Flags-for-Globbing.html
至于你的问题,在我看来你的匹配值是错误的。好像你应该在它的末尾贴一个GLOB_TILDE
,因为它对自动完成有用,即:
*
我有点困惑,因为你之前的例子甚至发现了第一个例子。这篇手册页文章的底部也有一些有趣的例子:
http://www.opengroup.org/onlinepubs/000095399/functions/glob.html