对于VC,我可以编写一个DEF文件并使用'NONAME'指令在dll的导出表中只保留序号.
我怎么能用gcc和ELF格式共享库做同样的事情?
或者,ELF共享库中是否有类似PE格式DLL中的序号?如果没有,我如何在共享库中隐藏导出的符号名称?
======================================
更新:一些额外的描述:
在Windows中,您可以通过仅放置具有空名称的整数ID(序号)来导出函数.
要显示它,一个DLL的导出表正常布局看起来是这样的:http://home.hiwaay.net/~georgech/WhitePapers/Exporting/HowTo22.gif.
"NONAME"看起来像这样:http://home.hiwaay.net/~georgech/WhitePapers/Exporting/HowTo23.gif .
请注意,第二张图片中的函数名称为"N/A".以下是对它的完整解释:hxxp://home.hiwaay.net/~georgech/WhitePapers/Exporting/Exp.htm.
======================================
更新:非常感谢为我提供建议的每个人.最后,我决定在linux/posix平台上使用静态库.但是将小的"特殊部分"(使用一些不适合静态库的特性,例如:TLS Slot等)提取到普通的共享库中.因为小型普通共享库只做很少的事情,而且这些工作完全不敏感,所以不需要隐藏/隐藏它的API.
我认为这是解决我问题的最简单方法:-D
当我打开我的http代理服务器的haproxy统计报告页面时,我看到如下内容:
Cum. connections: 280073
Cum. sessions : 3802
Cum. HTTP requests: 24245
Run Code Online (Sandbox Code Playgroud)
我没有在配置中使用'appsession'和任何其他与cookie相关的命令.那么'会话'在这里意味着什么?
我想haproxy通过这个顺序识别http会话:
我对吗?
以我的理解,mysql binlog可以完全充当InnoDB的重做日志。
那么,启用Binlog后,为什么InnoDB必须同时编写重做日志,而不是仅仅切换为使用Binlog?这是否会大大降低数据库的写入性能?
除了简化设计和实现之外,这样做还有什么好处?
AFAIK,要在保证ACID符合性的同时启用两个日志,将发生以下问题:
因此,所有其他产品似乎仅使用一组日志(SQL Server称为事务日志,ORACLE称为重做日志,PostgreSQL称为WAL)来完成所有相关工作。难道只有MySQL必须同时打开两组日志以确保ACID合规性和强而一致的主从复制吗?
在仅启用其中一项的情况下,是否有一种方法可以实现ACID遵从性和强大的一致半同步复制?