我想知道如何编写一个可以导出一些API函数的程序。
例如:假设我的函数很少,让我们把add(int x,int y),mul(int x,int y)sub(int x,int y)。
如何在c中编写守护进程,以便将API导出到外部世界。
如何从其他程序访问这些API?
我期待从代码的角度来看...提前谢谢......
答案 0 :(得分:2)
这取决于您对API的意思。
创建一个头文件。这将是您API的“界面”。想要使用您的库的程序必须包含它才能执行此操作。
libexample.h
int add(int x,int y);
int mul(int x,int y);
int sub(int x, int y);
然后,您可以继续以您喜欢的系统特定方式实现您的库。
在这种情况下,确实你想要一个守护进程并且可能想要使用RPC
。使用此方案,外部程序可以通过网络调用您的功能。
答案 1 :(得分:1)
我能给你的最简单的答案是Apache Thrift。您定义了一个服务接口(一组功能签名),并将其设置为侦听端口(该库为您进行网络呼叫)。然后客户端可以连接并轻松调用您公开的方法。这在语言之间非常有效。
答案 2 :(得分:1)
API (应用程序编程接口)是一个抽象概念,用户可以如何调用API提供程序的规范。
库是一组目标文件,它们可以导出一些符号(数据和函数),并且可能有初始值设定项和终结符。
库的API由导出的符号和这些符号的类型组成,这些符号将放在头文件中,因此库的调用者可以使用该头文件来访问您提供的符号。
RPC(远程过程调用)服务的API将位于关联的IDL文件中,这相当于头文件。
SOAP服务的API将位于关联的WSDL文件中。
答案 3 :(得分:0)
在linux中你需要在Windows中使用* .so - DLL。无论如何,你需要创建一个库 - 静态或动态。看一下共享库(Linux)或DLL(Windows)。