是否有LINUX和跨平台API的参考?

时间:2011-04-17 14:19:33

标签: c++ linux api

首先,我开发了调用OS API的C ++应用程序(如Windows中的CopyFile,GetModuleFileName,...)。我不想开发GUI应用程序。我的应用程序像WINDOWS中的SERVICE或CONSOLE一样工作。

其次,标准C ++库不提供线程,网络甚至文件管理等高级编程功能。

在MS Windows平台中,MSDN为希望使用Windows API的C ++程序员提供了很好的参考。

例如,在此页面中:“EncodePointer Function”,MSDN描述EncodePointer是“最低支持客户端是Windows Vista,Windows XP SP2”,“DLL”的API  是Kernel32.dll“和......

现在我想启动LINUX编程。我找到了太多的库和引用,一些在Fedora中工作,一些在Ubunto中工作,一些在SUSE中工作,...

但是我希望 ONE LINUX分发 ONE LIBRARY 。像Windows API那样适用于所有WINDOWSes

我有没有为linux编写一次代码库?并且不担心LINUX的其他发行版?

感谢。

5 个答案:

答案 0 :(得分:3)

是的,你想要POSIX library

答案 1 :(得分:3)

在大多数Unix类型的系统中,有一个标准可以工作(除了小错误或一些未实现的东西),包括所有Linux发行版,BSD,Solaris,AIX等。它被称为POSIXSingle Unix Specification;它们基本相同,但由不同的团体发表。您必须为POSIX付费,但单Unix规范是available online for free

请注意,某些POSIX是在Windows上实现的,并且有像CygwinWindows Services for Unix/Subsystem for Unix Applications这样的系统可以向Windows添加更完整的POSIX支持,尽管这些通常需要下载单独的库和运行时组件,并且有时可能令人沮丧的工作工作,如行结尾和文件权限在基于Windows和Unix的API中的工作方式不同。

超越POSIX,Linux和glibc实现了自己的一些系统调用和库例程,因此如果您只对在Linux上运行而不是在其他类Unix操作系统上运行感兴趣,那么您可以使用更丰富的API。如果你知道你正在寻找什么样的电话,你可以在Linux上使用man命令来查找它的文档;系统调用(如forkexecve)记录在第2节中,库调用(如printf)记录在第3节中。手册页也可以在线找到各种地方,例如the Linux man-pages project。 glibc还有一个完整的online manualan online reference of Linux system calls

如果你想要一本关于这个主题的书,那么运行Linux man-pages项目的人Michael Kerrisk的The Linux Programming Interface应该是非常好的。

有关所有Linux发行版应支持的内容的参考,您可以查看Linux Standard Base。与POSIX一样,这通常在大多数Linux发行版上得到支持;这里和那里会有一些小的偏差,但总的来说它应该告诉你对现代Linux的期望是什么。 Linux标准库主要引用其他标准,如Single Unix Specification / POSIX或Filesystem Hierarchy Standard,但本身也描述了一些特定于Linux的功能。

答案 2 :(得分:2)

除了目前每个版本的Windows提供稍微不同的API这一事实外,每个Linux发行版都支持对glibc进行编程,其文档包含在手册页的第2部分中。

答案 3 :(得分:2)

Qt是一个很好的框架,可用于开发一次并为包括Windows在内的所有平台编译。

答案 4 :(得分:1)

尝试BOOST http://www.boost.org/