前言
我对这个就真的是很感兴趣的,但是苦于不想干开发,只喜欢自己写写代码玩,不能当做工作来干。。。
这堂课是东软的开发工程师于玉龙老师上的,于老师代码写得是真的不错,简单易懂,比网上代码有好多了,说的写的都是重点,这篇文章我也主要介绍下我的一些学习中的理解,主要的代码实现还是看看源码。
自己的C语言当初老师教的浅显,后来就基本使用python代替日常开发了,所以也算是个复习和巩固的过程吧。。
linux与 C
下面这些技术都是在linux上实现的,计算机网络C程序开发嘛,也是各种网络设备4层和7层设备的底层实现,因为C接近底层,而linux内核右是一个极具开发前途的系统,可以在在上面加上可行的任何功能。。。
我也是在学习中,下面都是我的学习笔记。如果后期有必要,再写一些吧。
代码都在github
目录介绍
CH02
01hello
依旧是最喜欢的hello world
02option
这个很有用,获取命令行参数,并且可以自己定义方法,使用了getopt.h
这个头文件,命令行工具必备。
03cli
自定义一个获取参数行的参数,这个不如第二个好用,个人建议使用第二个,但是这个更简单, 如果只是个简单的去参还是可以使用的。
CH03
01current.c
time.h
时间库函数的使用
02measure.c
C语言的时钟,timeval和timespec 两种
03lstat.c
获取文件的类型,比如是文件夹或者是可执行文件之类的
04readdir.c
使用readdir
函数的使用,列出本目录下的文件,可用于文件操作
05opencnt.c
打开一个文件,写入一个值,这是典型的使用文件来保存程序运行状态。C语言文件读写。
06remotehello.c
这个就厉害了,我刚看到的时候真的惊艳到我了,这么几行代码可以这么厉害。作用是传入一个参数,创建一个为这个参数名的文件,并将输出流导入到里面。dup和dup2的使用介绍.
07listfile.c
使用popen执行命令,以及打印的一些技巧
08daemon.c
fork() fork通俗易懂的解释,创建一个几乎和父进程相同的进程,根据返回值不同区分父子进程,父进程退出后,子进程可以使用setsid使用自己父进程的PID,如果不调用,就成为孤儿进程,被操作系统收养,直到执行完成,再由操作系统完成资源回收。
09thread.c
10signal.c
信号量的使用后面学习学习
11shmem.c
12pipe.c
13semop.c
14vsysd
15sqlite_test.c
CH4
01tcpclient.c
socket TCP版本客户端
01tcpserver.c
docket TCP版本服务器端
02udpclient.c
02udpserver.c
03ethersock.c
04pcap_sniffer.c
数据包处理