04 2020 档案
摘要:select函数是 I/O 复用中非常重要的一个函数,属于并发编程的。它能够监视我们需要监视的文件描述符的变化情况–读、写或者异常 1. 函数原型 #include <sys/select.h> int select(int maxfdp,fd_set *readfds,fd_set *writef
阅读全文
摘要:本文并不将linux的常用命令全部罗列出来,列出一下常用、容易忘记的命令。 更详细的说明见:https://www.cnblogs.com/xuxinstyle/p/9609551.html 文件相关 1. ls 2. tree 显示树形的层级目录结构,非原生命令,需要安装tree 3. cp 用于
阅读全文
摘要:一、打包和压缩 打包:将一大堆文件或目录变成一个总的文件 压缩:将一个大的文件通过压缩算法变成一个小文件 原因:linux中的压缩只能针对一个文件进行压缩,当要压缩一大堆文件时,就需要先打包成一个总的文件,然后再压缩。 tar的重点选项 1. 打包 2. 调用gzip .gz结尾的文件就是gzip压
阅读全文
摘要:在linux系统中,内核为每一个新创建的文件分配一个Inode(索引节点),每个文件都有唯一的inode号。文件属性保存在索引节点里,在访问文件时,索引节点被复制到内存,从而实现文件的快速访问。 链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。有硬链接和软链接,软链接又称为符号
阅读全文
摘要:关于查找更详细的内容,参见《shell编程和Unix命令》 1. find命令 find命令的一般形式: 1.1 -name 按照文件名查找。最常用的用法。例如: 在当前目录及子目录查找所有txt文件并打印出来,可以用: find . -name "*.txt" -print 1.2 使用exec来
阅读全文
摘要:CFLAGS:C编译器选项,而CXXFLAGS表示C++编译器的选项 1. CFLAGS参数 CFLAGS主要功能:输出文件名称,可调试,编译告警,指定头文件目录 2. LDFLAGS参数 LDFLAGS的功能:围绕着编译时使用的库文件,添加库文件的路径 3. LIBS 告诉链接器要链接哪些库文件,
阅读全文
摘要:动态内存分配维护着一个进程的虚拟内存区域,称为堆(heap)。堆向上增长,用户栈向下生长。分配器将堆视作一组不同大小的块(block)的集合,有两种分配器。 显示分配器:malloc和free,new/delete,需要用户手动释放 隐式分配器:垃圾收集器,例如Java,不需要,自动释放 mallo
阅读全文
摘要:1. 在并发情况下,指令执行的先后顺序由内核决定。同一个线程内部,指令按照先后顺序执行,但不同线程之间的指令很难说清楚是哪一个先执行。如果运行的结果依赖于多线程执行的顺序,那么就会形成竞争条件,每次运行的结果可能会不同,所以应该尽量避免竞争条件的形成。 2. 最常见的解决竞争条件的方法是将原先分离的
阅读全文
摘要:实验环境 linux 注意: 使用UDP广播,是客户端发送广播消息,服务器端接收消息。实际上是客户端探测局域网中可用服务器的一种手段。客户端发送,服务器端接收,千万不能弄混淆!!! 为了避免混淆,本文不使用client、server字眼。而使用send,recv 构建send_broadcast.c
阅读全文
摘要:SO_REUSEADDR:字面意思重复使用地址 一般来说,一个端口释放后会等待两分钟之后才能再次被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。 SO_REUSEADDR用于对TCP套接字处于TIME_WAIT状态下的socket,才可以重复绑定使用。server程序总是应该在调
阅读全文
摘要:实验平台 linux 实验内容 编写UDP服务器和客户端程序,客户端发送消息,服务器接收消息,并打印客户端的IP地址和端口号。 实验原理 UDP是无需连接的通信,其主要实现过程如下: 同样,我们可以按照上一篇博客:基于TCP的客户端和服务器端的代码设计 的办法,将服务器代码分成两部分,一个是初始化,
阅读全文
摘要:实验平台 linux 实验内容 编写TCP服务器和客户端程序,程序运行时服务器等待客户端连接。一旦连接成功,服务器显示客户端的IP地址和端口号,并向客户端发送字符串 实验原理 TCP是面向连接的通信,其主要实现过程如下: 我们将服务器代码分为两部分。 1. init_tcp_server() tcp
阅读全文

浙公网安备 33010602011771号