- 博客(22)
- 收藏
- 关注
原创 k8s集群挂载nfs出现mount failed: exit status 32
错误描述环境:Debian 10 busterOS:x86_64 Linux 4.19.0-6-cloud-amd64Pod出现FailedMount:MountVolume.SetUp failed for volume “pv” : mount failed: exit status 32kubectl describe 后日志输出为mount.nfs: access denied by server while mounting …查看日志输出为: cat /var/log/messages
2020-05-11 14:13:55 6414 1
原创 ingress-nginxr创建时报Failed to list *v1beta1.Ingress: ingresses.networking.k8s.io is forbidden错误
错误描述Failed to list *v1beta1.Ingress: ingresses.networking.k8s.io is forbidden: User “system:serviceaccount:ingress-nginx:nginx-ingress-serviceaccount” cannot list resource “ingresses” in API group “n...
2020-04-29 18:49:13 9373 3
原创 微型计算机的组成结构
我们先来看一张现代PC机的芯片构成图:现代PC机的主板主要有北桥和南桥两大芯片构成,一改往日的将控制器与适配器接在本地总线上的设计。这两大芯片主要完成的主要功能是北桥芯片:完成CPU、视频接口(AGP)、存储器接口这些数据传输较快的设备之间的数据通信。南桥芯片:完成低层IO设备之间的数据交流:像USB串行设备、硬盘接口等等。CPU与IO设备之间进行通信,必须首先知道对方的地址:即端口...
2019-10-17 17:47:59 1437
原创 动态链接函数dlsym()的参数RTLD_NEXT使用注意事项
相比于已知函数的所在动态库,函数dlsym的参数RTLD_NEXT可以在对函数实现所在动态库名称未知的情况下完成对库函数的替代。这提供了巨大的便利。但是凡是有一利必有一弊,在使用该参数时,需要注意一些问题。使用的函数文件main函数.c#include <stdio.h>#include <malloc.h>int main (void) { struc...
2019-09-12 14:00:35 8499 1
原创 Linux 下动态链接时函数的延时绑定分析
定义: 将函数地址的解析推迟到函数调用的时候。实现方式:通过全局偏移量表【GOT】和过程链接表【PLT】之间的交互来完成。对于每一个调用了定义在共享库中函数的目标模块,那么它就会维持一个自己的GOT和PLT。其中GOT属于数据段的一部分、PLT属于代码段的一部分。相关数据结构过程链接表【PLT】:该结构是一个数组,每一个数据成员占用16字节的大小。雁过留声,每一个在共享库中定义的函数都可...
2019-09-10 23:19:56 299
原创 C++中可以不创建对象完成对类成员函数的访问吗
最近写CPP的时候,需要类外部一个普通函数指针调用类成员函数。根据当初的设计,函数指针所指向的函数不需要传入一个类对象的引用的形参。为了保持最初的设计,在不创建对象的情况下考虑了几种方案:首先想到的是静态成员函数。我们知道相比于普通成员函数,静态成员对象间共享且可以通过类名直接访问,同时普通函数指针必须指向静态成员函数。普通成员函数与静态成员函数区别可以总结于下图。但是静态成员函数有个使用...
2019-05-26 22:07:46 5754 1
原创 Linux虚拟文件系统(VFS)
写在前面close()函数成功返回是否标志着文件已经成功写入磁盘?Linux下一切皆文件,具体的实现过程或者背后的原理是什么?Linux下如何实现跨文件系统的数据交换?为了解决以上所提出的问题,我们先来了解一下Linux下的虚拟文件系统:VFS首先我们来先看一张图片:对于任何一个特定的文件系统接口,需要一个映射模块来转换实际文件系统特征到虚拟文件系统所期望的特征,VFS层向用户...
2019-04-29 10:39:53 676
原创 intel 8086 cpu 以16 bits 寄存器实现 1MB寻址能力过程的简单分析
写在前面本篇文章旨在说明题目所述问题,所以并不会对微处理器内部结构做更加详尽的阐述。只会对涉及的结构作简单的描述,因为是小白,所以如果哪里组织的有问题,欢迎各位小伙伴指正。我们首先来看一下微处理器内部结构 控制器的部件组成:从图中我们可以大致了解到命令在cpu内部的执行过程:16 bits 的程序计数器首先从存储器中取得指令放入8 bits 的指令寄存器。指令寄存器暂存放入的指令然...
2019-03-17 13:10:42 2631
原创 关于TCP重传、乱序和重复的问题
数据重传TCP提供两种重传的机制,一种是基于时间的超时重传,一种是基于接收端反馈消息的快速重传。相比之下前者占用更少的网络带宽,但是效率很低。而后者则相反。下面我们来具体看一下这两种机制的实现方式。超时重传顾名思义,如果发送端等待接收端发送的ACK超过了TCP所设置的RTO,那么此时发送端便会重传刚发的数据包。一般而言,TCP会对数据包的超时重传非常重视,当发生这种情况时,TCP会降低当...
2019-03-17 11:46:28 13090 4
原创 Leetcode 804. 唯一摩尔斯密码词(C++)
提名描述国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.&a
2019-03-08 14:12:36 341
原创 TCP和UDP的那些事儿
文章开始之前我们先抛出几个问题:大家都说TCP比UDP可靠,是这样吗?如果真是这样,那么TCP的可靠性体现在哪儿或者说TCP的可靠性通过什么手段来保证。UDP不如TCP可靠,那么为什么数据的传输不全采用TCP的方式,非要给UDP分一杯羹呢?我们都知道数据包的分片,为什么数据包的分片的任务没有交给传输层而是放在了网络层进行,其中难道有什么不可描述的交易?TCP的实现连接的建立要经过三次握手...
2019-01-30 18:08:48 391
原创 聊聊ppp数据帧与MAC数据帧
首先,我们知道数据链路层的信道分为两种:点对点信道广播信道今天我们讨论的ppp协议就应用于点对点的通信方式 ,我们先来看一下ppp数据帧的具体结构:ppp数据帧中F定义了数据帧的开始和结束,A定义了接收方的地址,C作为控制位,协议类型规定了来自于网络层的数据包所应用的网络协议,FCS为差错校验盒,目的是为了保证数据帧无差错的接收。FCS所应用的差错校验算法,比如循环冗...
2018-11-25 17:51:15 7370 1
原创 浅析多态实现原理
实现过程当我们在声明一个类时,编译器会自动帮我们创建一个虚函数表。比如下面的这段代码:编译器为我们生成的虚函数表虚函数表:虚函数表是由编译器自动产生的一种存储类成员函数的一种数据结构。其中虚函数会被自动放入表中。那编译器是怎么找到虚函数表呢?原来当我们当我们用类定义对象的时候,编译器内部会为成员结构体变量中增加一个指向虚函数表的指针 (vptr),当我们通过函数形参将子...
2018-10-26 16:09:24 263 1
原创 读写锁杂记
以前总是以为读写锁是两把锁,感觉这个和进程的管道通信差不多。既然进程有读端和写端,那么想当然的就认为读写锁就是读锁和写锁两把锁,接触到这个概念后才觉得自己还是flag立得太早了相关概念读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。特性线程A加读锁成功,线程B,C加读锁,可以加锁成功线...
2018-08-12 23:35:42 229
原创 生产者和消费者模型的实现
相关函数#include &lt;pthread.h&gt; /*头文件*/int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); /*初始化一个互斥锁*/int pthread_mutex_destroy(pthread_mutex_t *mutex);/*注销一...
2018-08-12 12:20:58 349
原创 exit函数和_exit函数的二三事
我们知道做什么事情都是有始有终,在编程中也是一样。在Linux中创建一个进程后,程序的末尾我们要将其退出,在Linux中进程退出总共有八种方法,本篇文章主要讲解其中两个函数。调用格式#include<stdio.h>#include<unistd.h>void exit(int status);void _exit(int status);exit...
2018-08-05 12:10:09 1481 1
原创 线索二叉树的实现(C语言)
概念鉴于普通二叉树使用过程中会出现空间的浪费,后人对在在二叉树的的基础上做了改进,利用它的空指针域存放在某种遍历次序下指向它的前驱结点,和后继结点的指针。这些指针称为线索,相应的二叉树就成了线索二叉树。 结点结构 Ltag为0时指向该结点的左孩子,为1时指向该结点的前驱。Rag为0时指向该结点的右孩子,为1时指向该结点的后继。结构实现线索存储结构定义 type...
2018-08-03 01:22:25 3563 6
原创 VMware网络设置方式 & Centos7网络配置
VMware网络配置方式桥接模式桥接模式下虚拟机会使用本机的实际网卡,所以会得到该网段一个实际的IP。此时它相当于一个独立的主机,它可以访问到局域网内的任何物理机机。优点:可以与局域网内的任何主机进行通讯。 由于主机网卡的不一而同,通常桥接模式下有两种连接到网卡的方式 1.无线连接。 2.有线连接。 更改方式在虚拟网络配置里面。 A A1 A2 B之间可以相互通讯...
2018-07-29 12:38:24 481
原创 Linux 下 C语言递归实现目录下文件的统计
系统编程_1刚接触linux下的C语言编程,试着写了常见命令ls的相关参数,其中自己感觉-R选项的实现还是比较麻烦,走了不少弯路。血与泪的创作开始了(滑稽)。int Recursive(char *path){ DIR * dir; struct stat buf; struct dirent *ptr; int i = 0,count = 0,k...
2018-07-27 19:53:54 1483
原创 链表的简单应用(C语言)
#include &amp;amp;lt;stdio.h&amp;amp;gt;#include&amp;amp;lt;stdlib.h&amp;amp;gt;#include&amp;amp;lt;string.h&amp;amp;gt;#include&amp;amp;lt;conio.h&amp;amp;gt;typedef struct List{
2018-05-26 16:49:31 1254
原创 排序小结(C语言)
Buble_sortvoid bublesort(int *a,int n){ int i,j,k,t; for(i = 0;i&amp;lt;n-1;i++) { for(j = i+1;j&amp;lt;n;j++) { if(a[i]&amp;gt;a[j]) { t = a[i]; ...
2018-05-26 14:40:28 317
原创 利用链式队列实现二叉树的层次遍历(C语言)
#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;stdlib.h&amp;gt;typedef struct tree{ char date; struct tree*pLeft,*pRight;}TREE,*PTREE;typedef struct List{ PTREE pBit; struct List *pNext;}NODE,*PN...
2018-05-26 12:35:32 3758 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人