![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LInux
文章平均质量分 79
aYang^
这个作者很懒,什么都没留下…
展开
-
网络项目OJ 在线判题系统
点我查看代码思维导图 ,一看立马懂思维导图大纲:1 获取题目列表1 获取题目列表访问服务器特定的ip + port2 渲染展示all_questions的html页面1 设置html页面标题2 设置每个题目超链接3 建立数据字典 + 和C++正则表达式配合使用,匹配展示每个题目的id + name + star4 设置form表单1 设置答题的代码编辑框textare...原创 2020-04-09 16:03:09 · 5131 阅读 · 0 评论 -
为什么是三次握手/四次挥手
首先看下 这是TCP协议下 段格式一个 segment(数据段) 包含 header(头部) 和 data(数据) 两个部分需要理解的就是,Sequence number(32位序列号) 和 Acknowledgement number(32位确认序号) 这两个字段。TCP 的可靠传输就是基于这两个字段来实现的。虽然主旨是三次握手与四次挥手但不理解 32位序号Segment_number ...原创 2020-03-17 12:05:44 · 727 阅读 · 0 评论 -
Linux 信号signal
1 ctrl -c 只能给前台程序发送信号而一个命令+& 表示将这个命令的进程放到后台运行,这样shell就不用等待就可以执行别的命令,启动新的进程。2 shell可以运行一个前台进程和任意多的后台进程,但只有前台进程才能接收到类似于ctrl+c这种控制键产生的信号3 前台进程运行中,用户可以随时用ctrl+c这样的控制键发送信号,也就是说,进程的用户空间代码执行到任何地方都有可能...原创 2020-01-27 19:54:38 · 319 阅读 · 0 评论 -
TCP三次握手四次挥手都做了什么?
三次握手三次握手和四次挥手都位于传输层1 建立连接调用socket,创建fd调用connect,向服务器发起连接请求connect会发出SYN段,并阻塞等待服务器应答(第一次)服务器收到客户端的SYN,会应答一个确认收到即SYN+ACK段来表示 “同意建立连接”(第二次)客户端收到服务器的SYN+ACK后,会从connect()返回,同时向服务器应答一个ACK...原创 2020-02-04 21:48:58 · 1446 阅读 · 0 评论 -
网络套接字/TCP/UDP 以及常见API的详解
计算机之间的传输媒介是光信号和电信号,通过“频率“ 和 ”强弱“ 来表示0 和 1 这样的信息 。 要想传递各种不同的信息 ,就要提前约定好双方的数据格式。协议——————一种双方的事先约定TCP/IP五层或四层模型物理层:物理层负责光信号/电信号的传递方式,eg:双绞线网线物理层的能力决定双绞线的最大传输能力,集线器工作在物理层数据链路层:负责数据帧的传送和识别。eg:...原创 2020-02-02 19:26:43 · 1658 阅读 · 0 评论 -
mutex互斥锁/线程池
来看个 购票的 代码#include <stdio.h>#include <pthread.h>#include <unistd.h>#include <string>#include <stdlib.h>#include <string.h>int ticket = 100;void* sell(void ...原创 2020-01-29 20:56:10 · 1092 阅读 · 0 评论 -
linux进程通信/异常处理
在使用共享内存的时,有时候程序异常结束,导致共享内存没有被释放,进而导致程序重新运行无法使用共享内存通信。提示信息为 file exits ;这时 我们 销毁共享内存再重新运行就 OK不用修改coredump 文件 ,也不要去gdb, bt查看了 。ipcs 或者 ipcs-m 命令 显示当前的 system V解决办法:1.ipcs 或者 ipcs-m 命令 查看当前...原创 2020-01-27 15:01:53 · 627 阅读 · 0 评论 -
文件/ IO
首先 看C语言的 文件IOhello.c 读文件#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){ FILE *fp =fopen("myfile","r");//打开文件myfile,得到一个指向文件的指针 if(!fp) { perror("...原创 2020-01-21 15:26:15 · 176 阅读 · 0 评论 -
进程间通信 共享内存 + 信号量
共享内存是最快的 IPC形式,,一旦这样的内存映射到进程的地址空间,这些空间的数据将不再涉及内核。ipcs -m 查看共享内存System V共享内存共享内存的步骤:1 创建/打开共享内存对象ftok(“存在的路径”,任意整数);eg: key_t ftok(".",0x02) 可以写成一个函数 只要参数相同,一定是共享内存2 附加到共享内存对象上(shmat->...原创 2019-12-19 19:09:10 · 923 阅读 · 0 评论 -
进程间通信
这块怎么说呢 ,就是不怎么使用,因为当信息量大的时候,会产生BUG,但是他还是有点用的,最重要 且最牛逼 但也比较难 的进程通信为 :网络为什么要进程通信?因为 进程具有独立性(每个进程都有自己的虚拟地址空间) ,两个进程 彼此并不直到对方的状态通讯需要介质,两个进程都能访问的公共资源:进程间通信可以 :1 传输数据2资源共享3 通知事件4 进程控制文件 (共享内...原创 2019-12-17 14:58:44 · 453 阅读 · 0 评论 -
linux中动态库 和 静态库
首先: 我们需要知道动态库和静态库的特征静态库 : .a动态库 : .so常用 libadd.a libadd.so动态库: 把目标编译成特殊的二进制程序,自身不能直接执行,但可以被调用 场景: 客户端更 只更新某个模块静态链接库:把一系列的.o文件一起生成一个特殊的二进制文件,自身不能执行,但是可一个其他.c文件编译成一个新的可执行程序其实上述代码可以 简单...原创 2019-12-16 11:13:17 · 177 阅读 · 0 评论 -
Linux 下父子进程的调度的理解
fork()规则: 父进程为模板 ,创建子进程1 将父进程的PCB复制一份 稍加修改作为子进程的PCB2 将父进程的虚拟地址空间空间拷贝一份,作为子进程的地址空间采用写时拷贝的方式,写时拷贝效率高,用到哪,拷贝哪。其实就是偷懒的拷贝方式。开销 进程 >线程 > 协程fork函数为调用函数,上边肯定还有库3 fork会在父子进程中分别返回,**父进程返回子进程的Pid ...原创 2019-12-13 18:19:12 · 2928 阅读 · 0 评论 -
linux下rm命令修改,增加回收站功能
vim ~/.bashrc (linux的用户根目录下.bashrc最后加入如下代码,让人们rm时候不再会全部删除,而是会加入到回收站里)mkdir -p ~/.trashalias rm=trashalias cattrash=‘ls ~/.trash’alias ur=undelfilealias mcls=cleartrashundelfile(){mv -i ~/.tra...转载 2019-12-13 14:21:22 · 146 阅读 · 0 评论 -
linux进程
查看(显示)进程 psps 显示当前目录下的进程ps aux :显示所有进程ps aux | less (less可以打开文件 | 管道符将第一个命令的输出当作第二个命令的操作对象)ps aux | grep 进程名给或者PID码bash: 显示当前只有两个进程ps aux |grep test我们发现指令也属于进程 ,共有两个进程现在在代码中加上 sleep我们发现 ...原创 2019-12-12 18:08:36 · 219 阅读 · 0 评论 -
linux 的调试工具gdb 和工程管理工具make/Makefile
首先 -g :编译的时候保留调试信息O0-O1 -O2 -O3O1 : 缺省值O2 : 业界公认的优化O3 : 优化比较激进优化级别越高,执行顺序就跟原始顺序差别越大,所以最好关闭优化再执行默认-O1gdb :常用指令break(b) 打断点info breakstep(f11)逐语句next(f10) 逐过程breaktrace(bt) ...原创 2019-12-11 18:19:07 · 304 阅读 · 0 评论 -
linux 包的管理工具yum 和 xshell运行原理
1 yumyum 软件包管理器下载 yum install卸载 yum removeeg ;yum install tree 树形显示的软件yum list 显示所有安装软件的清单常配合grep 使用yum list | grep 需要查看的名字yum makecache 将服务器的包信息下载到本地电脑缓存起来配合yum-Csearchxxx使用 ,这样做了...原创 2019-12-10 11:23:03 · 493 阅读 · 0 评论 -
Linux常用指令
1 ls 指令ls -l //和 ll指令效果一样 详细信息ls -a //输出子目录列表ls -k//以k字节输出Linux 下 clear 清屏 或者ctrl +l window下用cls2 pwd 显示当前所在 目录3 cd指令cd+空格+ /进入到根目录 ~表示子目录, /表示根目录 (这句就是出家)cd+空格+ /+home +家名字;返回...原创 2019-11-18 14:08:04 · 687 阅读 · 0 评论 -
了解Linux
1 Linux 基本指令和开发环境2 Linux 系统编程3 Linux 网络编程(最重要)什么时是 Linux?Linux是一个操作系统内核操作系统 = 内核 +一组配套的程序内核 负责对软件和硬件进行管理Centos才是操作系统类似 Centos Android Ubuntu Debian等 统称为Linux发行版但公司用 Redhat(红帽) 它是收费的搭...原创 2019-11-14 23:13:11 · 136 阅读 · 0 评论