- 博客(44)
- 收藏
- 关注
原创 Linux高级IO之poll
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯poll将输入参数和输出参数做了分离,所以我们就不用对参数进行重新设定了。并且把上限取消了。
2024-03-10 00:01:56 400
原创 Linux高级IO之select
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯网络的本质就是:IO,是一次输入和输出。
2024-03-10 00:01:40 1033
原创 Linux网络基础3之数据链路层
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯ip协议通过子网划分,目的IP地址,路径查找相关的算法从逻辑上可以从A主机到B主机了!下面就是局域网数据转发的问题!怎么实际上把报文从一个主机到另一个主机呢?当决定把数据交给下一跳路由器的时候,下一跳路由器绝对是和我在一个局域网!宏观来看本质上我们的网络都是由一个个子网构成的这都是子网转发!
2024-03-10 00:01:25 1041
原创 Linux网络基础3之IP协议
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯目前已经学完了应用层以及传输层,我们应用层是把数据发送到传输层的缓存区里,而我们的传输层把数据交到哪里了呢?网络吗?并不是,而是向下交付到网络层!在应用层,我们关注数据使用的问题,在下三层我们关注的是网络通信的细节,将数据可靠的从A主机传输的B主机!
2024-03-10 00:01:17 956
原创 Linux网络基础2之TCP协议
创建一个TCP套接字,同时会在内核中创建一个发送缓冲区和接收缓冲区调用write这些函数的时候,会将数据先写入发送缓冲区中,本质上是拷贝函数,如果发送的太长,则会被拆成多个TCP数据包发出,如果发送的太短,就会现在缓冲区里等待,等到缓冲区长度差不多了,或者其他合适的时机就可以发出去了同样接受的时候也是,把数据从网络到接收缓冲区,然后read或recv的时候就可以从接收缓冲区中拿(拷贝)数据。
2024-03-10 00:01:10 946
原创 Linux网络基础2之UDP协议
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-10 00:01:01 1044
原创 Linux网络基础2之http
这里是ky233的主页,欢迎光临~type=blog应用层:就是程序员基于socket接口之上编写的具体逻辑,做的很多工作,都是和文本处理有关的!——协议分析与处理所以http协议,一定会具有大量的文本分析和协议处理!
2024-03-10 00:00:34 931
原创 Linux网络基础2之协议
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-10 00:00:22 879
原创 Linux网络套接字补充
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-10 00:00:02 802
原创 Linux网络套接字之UDP网络程序
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯实现一个简单的对话发消息的功能!
2024-03-09 23:59:49 1782
原创 Linux网络套接字之预备知识
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-09 23:59:29 1808
原创 Linux网络基础1
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-09 23:59:04 700
原创 Linux多线程之信号量与基于环形队列的生产消费者模型
POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。但POSIX可以用 于线程间同步。
2024-03-09 23:58:23 976
原创 Linux之生产消费者模型
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯我们在条件满足的时候,唤醒指定的线程,我怎么知道条件是否满足呢?
2024-03-09 23:58:07 859
原创 Linux多线程之线程同步
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-09 23:56:41 919
原创 Linux多线程之线程互斥
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-09 23:56:31 866
原创 Linux多线程之线程控制
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-09 23:56:13 1936
原创 Linux多线程之初识多线程
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-03-09 23:55:47 829
原创 Linux信号之信号的处理
当我们通过一些系统调用接口执行OS底层的代码时候就进入了内核态,在执行自己写的代码就是用户态!用户态是一个受管控的状态内核态是一个OS执行自己代码的一个状态,具备非常高的优先级,基本不受任何资源的约束所以在合适的时候中的合适就体现在这里:让我们的OS在调度内核级别的代码的时候,无非就是内核级别的代码优先级更高,在从内核态返回到用户态的时候执行信号,这是因为,当我们返回时,就意味着已经执行完了内核代码,在这个时候去检测是为了让我们的信号的处理,至少要保证OS内部的代码要优先调度的特征!
2024-03-09 23:55:17 938
原创 Linux信号之信号的保存
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-01-15 14:59:23 859 2
原创 Linux进程信号之初识信号
linux信号本身是一种通知机制,用户和操作系统(本质上都是操作系统)通过发送一定的信号,来通知进程,某些事件已经发生,要来进程后续进行处理所有的信号,有他的来源,但最经全部都是被OS识别,解释,并发送的!t=N7T8这里是ky233的主页,欢迎光临~https://blog.csdn.net/ky233?type=blog。
2024-01-15 14:58:39 896
原创 Linux进程通信之共享内存与信号量
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-01-14 21:07:53 1058 1
原创 Linux进程通信之命名管道
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-01-14 21:07:03 408 1
原创 Linux进程通信之匿名管道
首先我们要知道进程是具有独立性的!那么所对应的,进程想要通信,难度其实是比较大的进程通信的本质就是:先让不同的进程看到同一份资源(内存空间)!看到的同一份资源不能隶属于任何一个进程,必须要共享管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”我们分别以读写的方式打开一个文件,然后创建子进程,相应的文件数据结构子进程会拷贝一份,然后双方关闭自己不需要的文件描述符,这个文件就叫做管道!管道通信是纯内存及的通信方式。我们用这个|符号就可以使用管道。
2024-01-11 15:05:30 837 1
原创 Linux基础IO之理解文件系统
(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~type=blog点个关注不迷路⌯'▾'⌯。
2024-01-11 15:04:53 931 1
原创 Linux基础IO之文件操作符
在我们调用系统接口的时候一般会这样写我们在这里可以看到fd的返回值是int,说明是一个整数,其中如果程序错误就会返回-1,打开一个文件是从3开始的,那么0、1、2呢?答案是Linux进程默认情况下会有3个缺省打开的文件描述符,分别是标准输入0, 标准输出1, 标准错误2。0,1,2对应的物理设备一般是:键盘,显示器,显示器所以fd其实就是文件操作符!缓冲区就是一个buffer数组,是为了提高我们整体的效率而存在。
2023-10-29 22:21:06 114 2
原创 Linux基础IO之系统文件操作
文件=文件的内容+属性,所以得知,即便是创建一个空文件也是要占内存的。所以文件的所有操作无外乎是对内容操作,对属性操作。站在系统的角度,能够被input读取,或者能够被output写出的设备就叫做文件,所以在Linux下一切皆文件。
2023-10-29 22:20:45 44 1
原创 Linux进程控制之进程替换
(。・∀・)ノ゙嗨!你好这里是ky233的主页ky233_-CSDN博客Linux初识进程,C++类和对象中,C++类和对象上篇type=blog点个关注不迷路⌯'▾'⌯。
2023-10-25 16:48:49 248 1
原创 Linux进程控制之进程创建、终止、等待
3 {57 }为什么代码最后总是0呢?但其实main函数的返回值并不总是0,这个是进程的退出码。其中0表示结果正确,非0表示结果不正确。我们可以通过下面这个命令来获取最近一个进程的退出码:echo $?这是返回给上一进程用来评判该进程执行结果用的。我们可以对返回值做判断来判别出你写的代码是否正确,如返回值正确,是自己想要的结果就是0,如不是则if直接返回一个非0的数字,非0值有无数个,以此来表示不同错误的原因,从而方便定位错误的原因。我们可以用strerror来打印常见的错误码5 {
2023-10-24 20:55:03 654
原创 Linux进程之进程地址空间
我们可以通过打印地址的方法验证地址空间的排布是否正确。479 {10 //代码段12 //已初始化14 //未初始化16 //堆19 //栈2122 //命令行参数i < argc;i++)30 {3233 }3436 }我们可以看到,地址就由低地址到高地址的。
2023-10-24 20:37:10 151
原创 Linux进程之进程状态
简单的来说就是父进程被终止了,子进程还没退出呢,那么此时子进程就叫做孤儿进程!我们可以看到当父进程提前退出之后,我们的子进程会被系统的1号进程领养。
2023-10-23 18:46:17 192
原创 Linux--环境变量
优先级就是PCB中的一些信息环境变量:一般是指在操作系统中用来指定操作系统运行环境的一些参数PATH : 指定命令的搜索路径HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)SHELL : 当前Shell,它的值通常是/bin/bash我们可以用echo $PATH(或者其他的环境变量名称)来查看对应的环境变量。如果我们查看所有的环境变量则可以使用env命令。环境变量的相关命令。echo: 显示某个环境变量值。export: 设置一个新的环境变量。
2023-10-23 18:45:05 52
原创 C++类和对象中
编译器自动生成的构造函数不会处理内置类型,编译器也不知道要初始化成多少,所以是随机值,而自定义类型则会调用自定义类型的默认构造函数。
2023-08-06 22:08:44 56 1
原创 C++类和对象上篇
类的定义方式有两种:1. 声明和定义全部放在类体中,成员函数如果在类中定义,编译器可能会(符合inline的条件)将其当成内联函数处理。int top;2. 类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::这里我们要知道,在c++里面,函数{}括起来的就是局部域,类里面也是类域。int top;//.cpp。
2023-08-04 00:22:21 55 2
原创 C语言指针进阶篇
数组指针是指针?还是数组?答案是:指针。整形指针: int * pint;能够指向整形数据的指针。浮点型指针: float * pf;能够 指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针举一个例子,下面哪个是数组指针首先第一个的意思是p1是数组名,先和[]结合,类型是int*,所以是指针数组,第二个(*p2)是指针,指向的元素个数是5,每个元素的类型是int,所以是数组指针,这里要注意:[]的优先级要高于*号的,所以必须加上()来保证p先和*结合。
2023-07-03 19:13:24 181 11
原创 qsort的函数的使用。
函数原型:void qsort(void* base,size_t num,size_t width,int(*compare)(const void* elem1,const void* elem2));qsot是基于快速排序算法实现的一个排序的函数,对于任意类型的数据都可以进行排序。void *base是指向要排序的数组的第一个元素的指针。size_t num由 base 指向的数组中元素的个数。size_t width,数组中每个元素的大小,以字节为单位。
2023-07-01 00:05:24 350 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人