我发现一些库链接到librt.so,而其他库没有。我想知道它是在什么情况下联系在一起的。
我从未直接使用过这个库。有没有演示它的直接用法?是否有与之相关的头文件?
发布于 2019-05-16 02:11:39
这些函数用于Real Time Solaris (Real Time意味着在时间范围内有保证的响应),它后来被集成到主线Solaris中,是libc的一部分。Librt只存在于历史上的、向后兼容的原因,您不需要引用它。
发布于 2019-05-14 19:43:01
$ nm /usr/lib32/librt.a | grep ' T ' | grep -v ' __'
00000000 T aio_cancel
00000000 T aio_error
00000000 T aio_fsync
00000000 T aio_read
00000000 T aio_read64
00000000 T aio_return
00000130 T aio_suspend
00000000 T aio_write
00000000 T aio_write64
00000000 T timer_create
00000000 T timer_delete
00000000 T timer_getoverrun
00000000 T timer_gettime
00000000 T timer_settime
00000000 T shm_open
00000000 T shm_unlink
00000000 T mq_open
00000000 T mq_close
00000000 T mq_unlink
00000000 T mq_getattr
00000000 T mq_setattr
00000310 T mq_notify
00000000 T mq_send
00000000 T mq_receive事实上,如果我们看一下man shm_open,我们会看到
与-lrt的
链接。
因此,提供的函数列表似乎是正确的。
还有来自Solaris https://docs.oracle.com/cd/E86824_01/html/E54772/librt-3lib.html的这个页面,它解释了库重新导出了一些在libc中实际实现的符号,并且由于历史原因而存在,因为它在Posix标准的一些版本中被指定。
https://stackoverflow.com/questions/56128570
复制相似问题