POSIX 包含一个名为 libgen.h 的头文件(本身不是很明确),描述为
模式匹配函数的定义
并包含以下函数定义:
char *basename(char *);
char *dirname(char *);
原来包含两个Regex相关的函数,但是在Issue 6中被移除了
这让我想到了一个问题:为什么是“libgen”?
这个名字
<libgen.h>
可能是“通用图书馆”的一些变体——但历史并没有真正相关。
在我打印的 AT&T Unix SVR4 程序员参考手册(由 Prentice-Hall 于 1990 年出版,ISBN 为 0-13-947029-8,但 Google 对该 ISBN 了解不多)中,还有许多其他函数定义在
<libgen.h>
标题。第 3G 节“通用库例程”列出了 basename()
和 dirname()
以及这些其他功能:
bgets()
(类似于现代的getdelim()
)bufsplit()
copylist()
gmatch()
(类似于现代的fnmatch()
)isencrypt()
mkdirp()
(在路径名中创建目录)rmdirp()
(删除路径名中的目录)p2open()
和p2close()
(与子流程的双向通信——与popen()
和pclose()
有关)pathfind()
regcmp()
和 regex()
(正则表达式)strfind()
, strrspn()
, strtrns()
strccpy()
, strcadd()
, strecpy()
, streadd()
您需要将程序与
-lgen
(libgen.a
,libgen.so
)链接才能访问这些功能。