所以现在我开发了一个我正在尝试为其编写API的应用程序。理想情况下,应用程序将字符串返回给用户。 API无法以正常的编程方式“返回”数据,因为可能存在从应用程序发送的未知数量的字符串。在Unix系统上,通过命名管道将这些数据传递给用户是个坏主意吗?我很难找到有关创建API的详细信息。谢谢你的帮助。
答案 0 :(得分:3)
API无法以正常的编程方式“返回”数据,因为可能存在从应用程序发送的未知数量的字符串。在Unix系统上,通过命名管道将这些数据传递给用户是个坏主意吗?
在Unix上,通过将数据写入“标准输出”,程序可以输出数据,尽可能多的数据,可能是大量数据。用户可以将此输出传递给屏幕或文件,或将其作为输入传递给另一个程序(例如,可能会过滤数据)。
我很难找到有关创建API的详细信息。
http://www.faqs.org/docs/artu/非常有名,fwiw:http://www.faqs.org/docs/artu/ch07s02.html#plumbing说了一些关于使用管道的东西(有一些例子),用于将数据从一个程序输出到另一个程序。
答案 1 :(得分:0)
取决于申请。如果它是一个短命的命令行工具,那么read-from-stdin / write-to-stdout模型可以很好地工作。 grep / sed / awk / perl将负责数据后处理。如果它是守护进程,则fifo或套接字可能是个好主意,尽管您必须考虑该流上的某种客户端 - 服务器协议。更进一步,提供一个知道该协议的库,并为应用程序编写者提供一些与您的应用程序通信的一致功能集,这将是一个真正的API。这是典型的客户端服务器,例如,大多数数据库的工作方式。