
Linux
文章平均质量分 67
呼的一声飞的好远好远
这个作者很懒,什么都没留下…
展开
-
进程控制
进程创建fork从已经存在的进程创建一个进程,新进程称为子进程,原进程称为父进程,调用此函数子进程返回0,父进程返回子进程的进程ID进程调用fork之后:分配新的内存和数据块给子进程将父进程的数据拷给子进程调用失败的原因:系统内有太多的进程实际用户的进程数达到了最大值fork之后父子进程一起执行代码,但是谁先执行由调度器决定通常父子进程的代码共享,当父子进程不在写入数据的时候,此时数据也共享,但是...原创 2018-05-19 23:29:41 · 151 阅读 · 0 评论 -
网络基础(二)
应用层(重要写代码) 协议:是双方的一种约定 报头:HTTP协议(超文本传输协议) URL:通俗来说网址 urlencode:特殊字符的编码urldecode:编码之后的解码 http抓包 http常见Header: Cookie:保存身份标识,避免重复登录,存字符串,保存数据有限(4K) ...原创 2018-08-11 10:15:28 · 157 阅读 · 0 评论 -
网络基础(一)
广域网和局域网局域网LAN:计算机多了,通过交换机和路由器连在一起 广域网:将远隔千里的计算机都连在一起广域网和局域网只是一个相对的概念 协议协议:是一种约定协议分层:是为了封装协议,即我们在使用其它层的东西时不用关注其他层的技术细节协议可自定制 网络协议协议分层OSI协议(七层模型):层级过多太复杂,所以我们一般会使用TCP/IP协议(...原创 2018-08-11 10:09:14 · 203 阅读 · 0 评论 -
网络编程套接字(socket)
网络编程基础知识IP地址(网络层):即网络中的门牌号,用点分十进制表示(默认IPV4) 端口号(传输层协议) 一个2字节16位的整数 用来标识一个进程 IP地址+端口号可以标识一个唯一的进程 一个端口号只能被一个进程占用 端口号和进程PID的区别?端口号是在网络传输的方面对进程的标识进程ID是在操作系统上对它的一个唯一的标识...原创 2018-08-11 10:03:06 · 265 阅读 · 0 评论 -
测试客户端
项目要求目的自己模拟一个curl函数,但是curl命令是自己构造一个HTTP请求发送给我们的目标服务器,而我们是自己构造一个HTTP请求发送给我们的命令行参数第二个参数(url),然后再从服务器端接受响应打印到标准输出 我们的执行命令是./client https://www.baidu.com/ 程序开始执行之后根据提示从标准输入中一行一行的读取字符串然后去构造HT...原创 2018-07-29 16:23:47 · 569 阅读 · 0 评论 -
Linux——信号
信号概念:是进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。如果进程定义了信号的处理函数,那么它将被执行,否则就执行默认的处理函数。我们可以通过命令kill -l来查看所有的信号哈哈哈哈乍一看会以为是64个信号,但是仔细看没有31和32信号,所以其实只有62个信号啦产生信...原创 2018-06-03 22:03:48 · 206 阅读 · 0 评论 -
进程间通信(二):消息队列
消息队列是操作系统为两个无关进程准备的通信方式,每个消息队列都有一个他自己的ID我们用来标识消息队列消息队列的不足就是我们发送消息的最大长度有限制,并且操作系统提供的消息队列的个数也是有限的此ID用如下函数创建此函数中的path为一个路径,讲道理这个路径其实可以随便定义,一般定义成当前目录即可,然后这个proj_id就是一个数字而已可以随便设,啊就是这样,但是我们要知道同一个路径同一个项目ID数完...原创 2018-05-23 08:20:41 · 222 阅读 · 0 评论 -
进程间通信(一):管道
让毫不相关的进程想办法让他们看到一份公共资源管道的目的数据传输资源共享(多个进程共享)通知事件进程控制(控制之前进行沟通)管道:将一个进程连接到另一个进程的数据流称为管道管道的特点管道只能单向传输,如果需要双向传输,建立两个管道即可管道的生命周期随进程变化,进程退出,管道释放管道提供字节流服务内核会对管道的操作进行同步和互斥一般管道大小为4096匿名管道(只允许有血缘关系的两个进程相互通信):pi...原创 2018-05-22 21:53:29 · 315 阅读 · 0 评论 -
进程概念
进程的基本概念系统调用:操作系统对外的一层接口,供上层开发使用,这部分接口就叫做系统调用库函数:是对系统调用的一层封装进程:将程序编译一个可执行文件之后,在操作系统中运行,然后由操作系统将它管理起来PID:进程的一个唯一的标识码PCB:进程控制块(描述进程)linux下特有的PCB:task_struct1.进程标识符2.知道程序执行的代码和数据在哪(用一个指针来保存代码和数据的地址)3.进程都打...原创 2018-05-14 10:37:13 · 196 阅读 · 0 评论 -
简易版shell
我门用exec函数来写一个简易版的shell 我们先理一下步骤: 首先将输入的在命令解析为一个一个的命令,就去掉空格,我们可以使用strtok函数(创建命令) 然后在创建一个进程让它去执行这个命令(解析命令并执行) 父进程等待进程结束了返回之后,继续执行原来的代码 #include <stdio.h>#include <sys/type...原创 2018-05-19 23:38:05 · 158 阅读 · 0 评论