successgo / blog

This is Success Go's blog.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

C programmers need to know

successgo opened this issue · comments

C programmers need to know

C 语言值得学习。它值得深入。它值得掌握。

C 之秀

C 语言是众多语言的根本。如:PHP、Java、Lua、V8 等。
C 语言可写系统。如:UNIX、Linux、路由器系统等。
C 语言可写驱动。如:网卡驱动、显卡驱动、USB 驱动等。
C 语言可写服务端软件。如:Nginx、Memcached、Mongodb 等。

C 语言基础

了解数据类型,函数,指针,结构体 struct 及联合 union

掌握编译程序,调试程序的方法。

了解多文件的使用,及 make 工具使用。

Book: The C Programming Language
Compiler: gcc or llvm
Debugger: gdb
Editor: vim or emacs, and many others
C Library: glibc, musl c, and many more

See c-basics

C 语言数据结构

Linux/UNIX 系统中的 C 语言

C 语言进程间通信

C 语言网络编程

C 语言项目研究

既然说 C 语言可以做大到系统,小到驱动。那么长久以来诞生了许多的优秀开源的 C 项目。我们可以由小到大选择一部分来研究。一来是研究软件实现的原理,二来是学习大项目是如何组织代码,三来是内里使用的算法与数据结构,四来还可以参与开源中贡献自己。

Tinyproxy

简单的无缓存的 HTTP 代理软件。

Lua

脚本语言,经常用来写游戏,经常作为 Nginx 的模块使用。

sqlite

轻量级的数据库。

Memcached

仅仅是缓存服务器软件。

Swoole

作为 PHP 的底层扩展,提供协程能力,可进行常驻进程开发。

Redis

Key-Value 型内存数据库,不仅可作为缓存服务器软件,它还支持更多的数据类型。

Nginx

俄国人开发的 Web 服务器软件,Web 市场份额增长强劲,且最近被收购。

NetBSD

BSD 系列系统。