有关Windows程序员(C / C ++)的Linux编程的任何提示吗?

时间:2011-06-17 16:25:24

标签: c++ c linux

  

可能重复:
  shifting from windows to *nix programming platform

有没有人知道一个好的,紧凑的资源,可以让我从Windows编程迁移到Linux编程?

我设法让简单的应用程序运行,检查了守护程序架构,但不知怎的,我不知道从哪里开始更好地了解架构的最佳实践和常见解决方案。

我想所有的线程,互斥,关键部分,i / o,(命名?)管道内容都可能远离Windows开发。但我找不到一份好的,紧凑的文档。

Linux中的守护进程似乎比在Windows中更简单,但我已经偶然发现了一个完全不寻常的fork函数,并且我应该有其他的东西。

此外,POSIX合规性的所有内容是什么?我听说它应该是与平台无关的,但我也读到它在某些发行版下并不完全支持。

7 个答案:

答案 0 :(得分:5)

Linux编程接口是我现在正在阅读的一本很棒的书:

http://www.amazon.com/Linux-Programming-Interface-System-Handbook/dp/1593272200

只要看看其优秀的客户范围 - 它就是非常出色的Linux编程书。

答案 1 :(得分:3)

您可以查看esr的The Art of Unix Programming,它将回答您的大部分问题。

它将解释* nix哲学,API的设计,POSIX兼容性的起源和原因以及其他所有内容。

答案 2 :(得分:2)

关于* nix API的详细信息,这是一组很好的材料:

http://www.hiraeth.com/alan/tutorials/courses/unixprog.html

有人聚集了一个不错的list of links to many resources here

虽然学习目标平台很好,但我强烈建议尽可能使用Boost库作为平台依赖行为的包装(用于线程,网络等)。

答案 3 :(得分:1)

答案 4 :(得分:0)

特别是对于线程,您可能希望阅读NPTL

fork与Windows CreateProcess最相似,但语义不同,在映射代码之前需要很好地理解。

答案 5 :(得分:0)

您需要学习两件事。

  1. 工具
  2. 的API
  3. 查看工具:makeGCC。使表单成为大多数unix构建的基础,尽管有许多工具(自动工具和CMake)将为您生成Makefile。

    对于API,最好的文档是GLibC Manual。它很好地解释了基本的unix apis。

答案 6 :(得分:0)

罗宾斯看看Unix Systems Programming。它更多的是关于POSIX而不仅仅是UNIX,并且还包含了一些非常好的深入示例的材料。 POSIX因子意味着它可以很好地转换为Linux以及其他一些UNIX变体,如BSD和OSX。阅读之后,您肯定会非常清楚地了解POSIX系统的工作原理,以及对您使用API​​的主要领域(如线程,套接字和文件I / O)的优秀调查。 / p>