首先,我开发了调用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的其他发行版?
感谢。
答案 0 :(得分:3)
是的,你想要POSIX library。
答案 1 :(得分:3)
在大多数Unix类型的系统中,有一个标准可以工作(除了小错误或一些未实现的东西),包括所有Linux发行版,BSD,Solaris,AIX等。它被称为POSIX或Single Unix Specification;它们基本相同,但由不同的团体发表。您必须为POSIX付费,但单Unix规范是available online for free。
请注意,某些POSIX是在Windows上实现的,并且有像Cygwin或Windows Services for Unix/Subsystem for Unix Applications这样的系统可以向Windows添加更完整的POSIX支持,尽管这些通常需要下载单独的库和运行时组件,并且有时可能令人沮丧的工作工作,如行结尾和文件权限在基于Windows和Unix的API中的工作方式不同。
超越POSIX,Linux和glibc实现了自己的一些系统调用和库例程,因此如果您只对在Linux上运行而不是在其他类Unix操作系统上运行感兴趣,那么您可以使用更丰富的API。如果你知道你正在寻找什么样的电话,你可以在Linux上使用man
命令来查找它的文档;系统调用(如fork
或execve
)记录在第2节中,库调用(如printf
)记录在第3节中。手册页也可以在线找到各种地方,例如the Linux man-pages project。 glibc还有一个完整的online manual和an 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/