我正在研究标准Ada POSIX binding和GNAT的Florist实现。目的是评估是否可以通过使用pragma本身移植对旧版应用程序的移植。导入C POSIX函数以使用标准绑定。最终目标是能够在不更改源代码的情况下在Solaris和Linux中重新编译应用程序。我的疑问是UNIX传统中用于进程间通信功能的几组接口,例如信号灯,消息队列等。Florist正在导入这些C函数:
而应用程序正在导入以下其他集合:-信号灯:semget semop semctl-邮件队列:msgctl msgrcv msgsnd
某些sources将应用程序使用的集合定义为System V,而不是POSIX,而在others中,它们被IEEE Std 1003.1-2001声明为标准化的,显然是POSIX。
我的问题是:
我做了一些研究,从ISO working group dedicated to Ada中找到了两个相关文件。在文档Initial Work Scope Summary for updating Ada POSIX Bindings IS 14519:2001 to POSIX Draft IS 9945:2008 and Ada 2005中,列出了Ada标准当前不支持的POSIX功能(可能的扩展)。其中提到了XSI功能(又名SysV IPC)。因此,当前不支持它们。
但是它们不会在不久的将来,因为文档Draft Minutes, Meeting #64指出更新工作已被取消。因此,用户应该继续为这些POSIX C函数创建自己的界面。