全局功能(c)和备份文件(文件〜)

时间:2010-04-16 20:02:02

标签: c glob

我正在使用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);

但它没有改变任何东西!有人能帮助我吗?

1 个答案:

答案 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