我即将毕业于电子和Tlc工程,我在PHP和Java方面有一些不错的面向对象编程经验。
现在我想尝试开始作为C程序员的职业。
我对C感兴趣,因为我认为这是最适合的语言,不考虑汇编,开发设备驱动程序,固件和其他低级软件。
特别是我希望能够处理与网络相关的主题。
我想要非常接近硬件,因为我认为这是我能够有成效地学习学位的唯一方式,同时又能成为一名程序员。(
)
所以我想问一下你认为我应该阅读的内容,考虑到我已经可以在C中写一些东西了,但是我已经阅读了几次K& R。
如果您知道任何工具或库(如libevent和libev),这些工具或库是低级,网络相关的C编程领域的事实标准,那么也很好。
答案 0 :(得分:3)
没有特别的顺序:
答案 1 :(得分:2)
必读书:
对于系统级网络代码(您表示对驱动程序等感兴趣),请参阅OpenBSD sources,因为它很紧凑,干净,标准网络API几乎完全基于BSD。
答案 2 :(得分:1)
取决于您想要达到的低级别。有一个名为uIP的小堆栈 这是一个很好的阅读,它有很好的文档,并有一些关于它的论文。它更接近硬件然后任何linux socket / io编程,因为没有内核可以阻止。
你可能还想看一下tcpdump,它是一个很好的基于cli的嗅探器,(用c语言编写)所以你可以使用它,也可以将它拆开!
答案 3 :(得分:1)
Beej's guide to Network Programming是一个开始的好地方。如果你想沿着兔子洞走下去,那么就像许多其他人一样推荐看看Unix网络编程,由Richard Richard Steve编写的1-2卷。
答案 4 :(得分:0)
libcurl源怎么样?看看here。
答案 5 :(得分:0)
我已多次使用此"Linux I/O port programming mini-HOWTO"。这是C代码。
serial I/O还有许多C代码示例。
答案 6 :(得分:0)
不完全是C特定的,但像Wireshark这样的数据包嗅探器对测试和测试非常有用。调试网络相关程序。