前言

我对这个就真的是很感兴趣的,但是苦于不想干开发,只喜欢自己写写代码玩,不能当做工作来干。。。

这堂课是东软的开发工程师于玉龙老师上的,于老师代码写得是真的不错,简单易懂,比网上代码有好多了,说的写的都是重点,这篇文章我也主要介绍下我的一些学习中的理解,主要的代码实现还是看看源码。

自己的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

数据包处理

05pcap_filter.c

06ssl



课堂笔记  

linux GCC

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!