POSIX的libgen.h为什么这么叫?

问题描述 投票:0回答:1

POSIX 包含一个名为 libgen.h 的头文件(本身不是很明确),描述为

模式匹配函数的定义

并包含以下函数定义:

char  *basename(char *);
char  *dirname(char *);

原来包含两个Regex相关的函数,但是在Issue 6中被移除了

这让我想到了一个问题:为什么是“libgen”?

c unix posix
1个回答
1
投票

这个名字

<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
)链接才能访问这些功能。

© www.soinside.com 2019 - 2024. All rights reserved.