首页
zfl9
取消

WLAN 笔记

本文主要记录 Linux 与无线网络相关的一些知识和操作笔记,包括:如何编译无线网卡的驱动、如何利用 dkms 在内核更新时自动编译驱动模块、以及 hostapd、wpa_supplicant、iw 等实用工具的用法。 内核模块 在 Linux 中,驱动一般都是通过内核模块的形式提供。内核模块分为 内置模块、可加载模块:内置模块是静态编译进内核的,无需通过 modprobe、insmod...

C语言 进程间通信 管道

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 匿名管道pipe shell中的管道 如果你使用过Linux的命令,那么对于管道这个名词你一定不会感觉到陌生,因为我们通常通过符号|来使用管道; 但是管道的真正定义是什么呢? 管道是一个进程连接数据流到另一个进程的通道,它通常是用作把一个进程的输出通过管道连接到另一个进程的输入; 举个例子,在shell中输入命令:ls...

C语言 多进程编程

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 进程、线程 进程是资源分配的最小单位,线程是CPU调度的最小单位 进程(Process) 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础; 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程...

C语言 socket编程(四)

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 IO模型 网络IO的本质是socket的操作,我们以recv为例: 每次调用recv,数据会先拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间; 所以说,当一个recv操作发生时,它会经历两个阶段: 第一阶段:等待数据准备 第二阶段:将数据从内核拷贝到进程中 对于sock...

C语言 socket编程(三)

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 getsockopt、setsockopt int getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlen); 获取套接字属性 socket:输入参数,要操作的socket套接字 level:输入参数,协议层:...

C语言 socket编程(二)

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 socket缓冲区 对于tcp_socket,在创建socket的时候同时分配了两个缓冲区:发送缓冲区、接收缓冲区,每个tcp_socket之间的缓冲区的互相独立的 对于udp_socket,只有一个缓冲区:接收缓冲区,没有发送缓冲区,因为udp的不可靠,所以也没必要在内核中保存发送的副本 滑动窗口: tcp实现流量...

C语言 socket编程(一)

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 socket 网络主机之间的应用程序如何进行通信? 网络层的ip地址可以唯一标识网络中的主机; 而传输层的协议+端口可以唯一标识主机中的应用程序(进程); 这样利用三元组(ip地址 + 协议 + 端口)就可以标识网络的进程了,网络中的进程通信就可以利用这个标志与其它进程进行交互 什么是socket套接字? 上面我...

C语言 断言

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 assert断言 断言是对某种假设条件进行检查(可理解为若条件成立则无动作,否则应报告) 它可以快速发现并定位软件问题,同时对系统错误进行自动报警 断言可以对在系统中隐藏很深,用其它手段极难发现的问题进行定位,从而缩短软件问题定位时间,提高系统的可测性 使用断言需要包含头文件: assert.h 断言的宏原型为:voi...

C语言 printf与scanf

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 printf()系列 头文件:stdio.h、stdarg.h int printf(const char *fmt, ...);:输出至stdout int fprintf(FILE *stream, const char *fmt, ...);:输出至stream int sprintf(char *str...

C语言 内存管理

此篇博客仍在整理中,内容质量及排版比较一般,还请见谅 动态分配内存 头文件:stdlib.h void *malloc(int size);:在堆区分配一块指定大小的内存空间,这块内存空间在函数执行完成后不会被初始化,它们的值是未知的 void *calloc(int len, int size);:在堆区分配一块len*size大小的内存空间,并且每个字节都初始化为...