1

我即将毕业,电子和 tlc 工程,我有一些不错的 PHP 和 Java OO 编程经验。
现在我想尝试以 C 程序员的身份开始职业生涯。

我对 C 很感兴趣,因为我认为这是最适合开发设备驱动程序、固件和其他低级软件的语言,而不考虑汇编语言。特别是我希望能够从事与网络相关的主题。我想在硬件附近工作,因为我认为这是我能够在获得学位的同时获得作为程序员的满足感的唯一途径。

所以我想问一下你认为我应该读什么,因为我已经可以用 C 写一些东西了,虽然没有什么花哨的,而且我已经读了几次 K&R。

如果您知道任何工具或库(如 libevent 和 libev),它们是低级、网络相关、C 编程领域的事实上的标准,也很高兴知道。

4

7 回答 7

3

没有特别的顺序:

于 2009-02-17T21:21:07.910 回答
2

必读书籍:

  • TCP/IP 图解,史蒂文斯
  • UNIX 网络编程,Stevens 等人

对于系统级网络代码(您表示对驱动程序等感兴趣),请参阅OpenBSD 源代码,因为它紧凑、干净,并且标准网络 API 几乎完全基于 BSD。

于 2009-02-17T21:12:05.793 回答
1

取决于你想去多低的水平。有一个名为uIP的小堆栈 ,读起来很不错,它有据可查,并且有几篇关于它的论文。它比任何 linux socket/io 编程都更接近硬件,因为没有内核阻碍。

您可能还想看看 tcpdump,它是一个不错的基于 cli 的嗅探器(用 c 编写),因此您既可以使用它,也可以将它拆开!

于 2009-02-17T21:28:51.853 回答
1

Beej 的网络编程指南是入门的好地方。如果您想深入兔子洞,那么正如许多其他人所推荐的那样,请查看 W. Richard Stevens 的 Unix Network Programming, 第 1-2 卷。

于 2009-02-17T22:41:24.130 回答
0

libcurl 源代码如何?看看这里

于 2009-02-17T21:04:17.933 回答
0

我已经多次使用过这个“Linux I/O 端口编程 mini-HOWTO”。这是 C 代码。

还有一些用于串行 I/O的 C 代码示例。

于 2009-02-17T21:19:05.480 回答
0

不完全是 C 特定的,但像 Wireshark 这样的数据包嗅探器对于测试和调试网络相关程序非常有用。

于 2009-02-17T21:33:09.987 回答