自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 struct field tag `json: “etcdInitConfig“` not compatible with reflect.StructTag.Get: bad syntax for

【代码】struct field tag `json: “etcdInitConfig“` not compatible with reflect.StructTag.Get: bad syntax for。

2023-08-21 16:20:56 547

原创 openstack 命令 输出不能加载属性解决

原因还是我自作聪明的安装了python-openstackclient-6.xxx的高版本的包,结果不好用,卸载后导致原来的命令总是输出一些垃圾信息。我先把 /usr/lib/python3/site-packages/openstackclient/ 和 /usr/local/lib/python3/site-packages/openstackclient 这两个删除,然后执行命令。结果还不如之前的,之前只有三个模块,现在好了,编程了一堆了,更是头疼了。

2023-05-06 11:40:48 532

原创 Python中带有**形参的函数,如何传参。

openstack开发的时候,经常能见到**修饰的形参。这其实是把字典中的kv键值对当做参数传给被调用函数,且被调用函数中形参作key。想获取主机的代理状态。其他代码中有相关调用用法是client.agents(**kwargs),我想既然是字典打散了,直接传个参数应该没问题吧。

2023-04-11 11:31:22 181

原创 解决安装brew的过程

报错:LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443解决方法:dayu: ~ % git config --global --listremote.origin.proxy=https://github.com/***********http.sslverify=falsefilter.lfs.clean=git-lfs clean -- %ffilter.lfs.smudge=git-lfs smu

2021-11-19 12:30:11 214

原创 qemu-kvm安装过程

git上下载源码:git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git./configure --enable-kvmmake遇到下面报错:In file included from ./qemu-common.h:6:0, from block/qcow2-snapshot.c:25:block/qcow2-snapshot.c: 在函数‘qcow2_write_snapshots’中:./compiler.h

2021-10-27 19:18:13 653

原创 获取网卡信息及总线pci C语言处理

#include <stdio.h>#include <sys/socket.h>#include <sys/types.h> #include <netinet/in.h>#include <arpa/inet.h>#include <sys/ioctl.h>#include <linux/if.h>#include <stdlib.h>#include <linux/ethtool.h&

2021-08-04 16:59:19 542

原创 linux下 C语言 获取网卡信息:网卡名字 ipv4 ipv6。

#define _GNU_SOURCE # required for NI_NUMERICHOST#include <arpa/inet.h>#include <sys/socket.h>#include <ifaddrs.h>#include <stdio.h>#include <netdb.h>int main (){ struct ifaddrs *ifap, *ifa; struct sockaddr_in6.

2021-08-03 18:00:43 1303

原创 C语言goto跳转的一个特殊的方式,记录发现的问题

今天遇见了一个这样样的写法,来实现goto,感觉很棒,看代码能看出来大概实现,但是为什么能这样实现不太清楚,有没有感兴趣的大佬指点一下迷津。为什么可以这样实现。我的理解: 对DROP取二级地址放到指针数组里面,元素1号位置是DROP这个字符串的二级地址,然后对元素 * 解引用,就可以输出地址里面的东西就是DROP。我的疑问:1.这个数组为什么可以这样定义呢?2.为什么printf打印不出来table的元素呢?#include <stdio.h>int main (){

2021-07-23 11:17:45 141

原创 关于math库的库函数,对‘sqrt’未定义的引用,使用时发现的问题

#include <stdio.h> /* printf */#include <math.h> /* sqrt */int frequency_of_primes (int n) { int i,j; int freq=n-1; for (i=2; i<=n; ++i) for (j=sqrt(i);j>1;--j) if (i%j==0) {--freq; break;} re

2021-06-28 17:13:22 2506

转载 给swap扩容(记录)

通过swap分区文件增加swap空间创建swap分区的文件dd if=/dev/zero of=/data2/swapfile bs=1M count=1024其中bs是每块的大小,count是块的数量;bscount,就是swap文件的大小:这里1M1024=1G。可以根据需要自行调整。此外,swapfile是swap文件的路径,可以根据需求修改。格式化交换分区文件mkswap swapfile这里的路径和之前的路径要对应起来。启用swap分区文件swapon swapfile添加开

2021-06-04 13:53:33 257

原创 遇到C语言中 遇到的二级指针和一级指针问题

在基于vpp数据疏导平台环境开发时,vpp中自带的vec库使用。vec是一个动态数组。在对动态数组调用传参时,我传递给的是一级指针相当于该动态数组的首元素地址,编译通过,但是在实际运行时,报错Program received signal SIGSEGV, Segmentation fault.查了很久没有查到问题,最后查到应该经vec动态数组的首地址的地址传递给函数调用。当动态数组首元素地址当做参数传递给函数时,调用函数的形参是拷贝了数组首元素地址,在该函数执行完会把形参释放掉,但是对本来的动态数组有什

2021-06-03 09:15:51 170

原创 关于boot扩容记录

1.安装了gparted,将/boot下的内容备份到其他文件夹2.删除了卸载了boot的挂载分区,删除boot3.重新分配了ext4内存2048G,应用并分配UUID4.在/etc/fstab中修改配置,uuid和5.把备份的boot 拷贝到已经的boot路径下6.修改/boot/grub/grub.cfg中原来的uuid换成现在的boot uuid7.重启以上是正常流程。我在第四步的时候,重启了,启动不起来,报错 第一次启动需要制定内核重启,linux启动不起来,进入grub 急救

2021-05-20 09:36:14 323

原创 C语言中关于malloc给结构体中指针成员分配空间被memset置成NULL问题记录

#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct { int a; int *p;}test_t;int test(){ test_t a; a.p = malloc(sizeof(int) * 10); memset(&a, 0, sizeof(test_t));

2021-05-18 09:55:44 552

原创 ubuntu 不能安装了vmware tool也不能全屏问题

dpkg --get-selections |grep linux-imagelinux-image-5.3.0-28-generic deinstalllinux-image-5.4.0-66-generic deinstalllinux-image-5.4.0-67-generic deinstalllinux-image-5.4.0-70-generic installlinux-image-5.4.0-71-generic installlinux-image-5.4

2021-04-19 13:18:38 93

原创 ubuntu 基础命令

ubuntu 查看安装包的版本信息:pkg-config --modversion xxx

2021-04-15 14:23:34 49

原创 预处理基础知识

预处理符号__FILE__: 当前文件的原文件名字__LINE__: 文件当前的行号__DATA__: 文件编译的日期__TIME__: 文件编译的时间__SDTC__: 如果编译器准寻ANSIC,其值为1,否则未定义#define宏和#undef宏#define _(name) name // 定义一个宏定义#undef _ // 移除一个宏定义##和###将两个字符串链接起来#将后面的当做字符串处理#define name(a,b) a##b#define .

2021-03-18 11:15:26 127

原创 虚拟机物理资源部分指令及解析

查看逻辑CPU个数:cat /proc/cpuinfo |grep “processor”|sort -u|wc -l查看物理CPU的个数:grep “physical id” /proc/cpuinfo|sort -u|wc -l查看每个物理CPU内核个数:grep “cpu cores” /proc/cpuinfo|uniqlscpu命令,查看的是cpu的统计信息.Architecture: i686 #cpu架构CPU op-mode(s): 32-bit, 64-bitByte Orde

2021-03-18 11:13:22 219 1

原创 自学黑马系列C++基础之函数

概述作用:将一段经常使用的代码,封装起来,减少重复代码。一个较大的程序,通常分为若干个代码块,每个模块实现特定的功能。函数的定义:返回值类型 函数名 参数列表 函数体 return表达式参数列表一般放在小括号中,函数体和return表达式放在大括号中。返回值的类型就是return表达式结果的数据类型。eg:int test_add(int a, int b){ int c; c = a + b return c;}函数的调用作用:使用已经定义好的函数语法:函数名.

2020-11-29 17:19:13 104

原创 自学黑马系列C++基础之数组

一维数组一维数组的定义:数据类型 变量名[数组长度];数据类型 变量名[数据长度] = {元素1, 元素2,…};数据类型 变量名[] = {元素1,元素2,元素3};

2020-11-26 12:23:20 84 1

原创 自学黑马系列C++基础之跳转语句

跳转语句有三个:分别是 break continue gotobreakbreak在循环中,表示跳出循环。如果用在嵌套循环中的内层循环中,表示跳出内层循环,如果再外层循环中,表示跳出外层循环。在switch-case结构中,一般用在各层case语句的最后,用于结束本层的case语句。用在条件语句中,表示跳出条件语句。内层循环使用break:示例:#include <iostream>int main(void){ for(int i=1; i<=

2020-11-24 12:36:46 201

原创 自学黑马系列C++基础之循环结构(do....while 、for)

do…while循环的结构:do{循环体}while(循环条件)while循环是先判断条件然后再进循环体执行,do…while循环是先执行一遍循环体,然后判断循环条件是否满足下次循环。示例:输出0-9 (用while循环)#include <iostream>int main(void){ int i = 0; do{ std::cout << i++ << std::endl; .

2020-11-20 09:34:25 173

原创 c/c++中宏实现switch-case 字符串

#ifndef _SWITCH_CASE_INIT_#define _SWITCH_CASE_INIT_ #define _SWITCH(X) {char *__switch_p__;\ int __switch_next__;\ for(__switch_p__ = X ? (char *)X : NULL; \

2020-11-19 10:54:25 1042

原创 自学黑马系列C++基础之循环结构(while循环)

while循环结构的使用while(循环条件} { 循环体 }在满足循环条件时,将会一直执行循环体。示例:屏幕上输出0~9.#include <iostream>int main(void){ int num = 0; while(num <= 9){ std::cout << num++ << std::endl; }}ubuntu@VM-0-16-ubuntu

2020-11-19 09:49:11 171

原创 自学黑马系列C++基础之条件结构

条件结构if语句单行条件结构多行条件结构多条件结构单行条件结构:if(条件)执行语句多行条件结构:if(条件){执行语句1} else {执行语句2}多条件结构:if(条件1){执行语句1;} else if (条件2){执行语句2;} else if (条件3){执行语句3;}…else if(条件n){执行语句n;} else {执行语句n+1;}三目运算表达式1?表达式2:表达式3;解释:当表达式1的逻辑值为1时执行表达式2,否则执行表达式3

2020-11-13 09:05:58 173

原创 C语言 变参 stdarg

一个函数可以用不同类型的不同数量的参数来调用。包含文件stdarg.h声明一个类型va_list,并定义了三个宏,用于逐步遍历被调用函数不知道其数量和类型的参数列表。在使用过程中需要包含头文件stdarg.h:#include <stdarg.h>void va_start(va_list ap, last);a)va_start()宏初始化ap,以便va_arg()和va_end()后续使用,必须首先调用该宏。b)last是变量参数列表前最后一个参数的名称,也就是调用函数的最后一个可知

2020-11-11 16:09:36 225

原创 自学黑马系列C++基础之运算符

C++中运算符有四类:算术运算符、赋值运算符、比较运算符、逻辑运算符算术运算符有:+ - * / % ++ –a)前四个为四则运算符号 +加 -减 *乘 /除%是取余int a = 0;int b = 4;int c = 3;a = b + c;cout << a <<endl; // 7a = b - c;cout << a <<endl; // 1a = b * c;cout << a <<end

2020-11-11 10:04:15 115 2

原创 自学黑马系列 C++基础之数据类型(二)

转义字符常用到的转义字符:\n \t \a) \n 换行符cout << “hello world!”<< endl;cout << “hello world!\n”上面两句输出结果是一样的\n相当于endl.b) \t 输出 补齐一个table的宽度cout << “hello\tworld”<<endl;一般table为8个空格的宽度,上条语句输出的结果为:hello worldcout << “h..

2020-11-09 09:34:13 135 2

原创 自学黑马系列C++基础之数据类型(一)

数据类型意义:是给变量分配合适的内存空间整型:类型 占用空间 取值范围short 2个字节 : -2^15 - 2^15-1int 4个字节 : -2^31 - 2^31-1long windows中4个字节 linux中32位系统4个字节 64位系统中8个字节 :-2^31 - 2^31-1 / 8个字节:-2^63 - 2^63-1long long 8个字节 :-2^63 - 2^63-1关键字 sizeof用法 sizeof(类型/变量) 返回值是该

2020-11-06 09:39:17 104 2

原创 自学黑马系列 C++基础之初识

一个工程的创建:vsstdio 创建项目->创建文件->书写代码->运行程序注释:分为单行注释和多行注释单行注释:在当前行的 两个反斜线//开始后面均为注释,不参与代码的编译运行多行注释:所有在以 /* 开始的到第一个 */结尾的内容 均为注释,不参与代码的编译运行变量的意义:方便我们管理内存定义一个变量的方法: 数据类型 变量名称 = 最初始的值;每行程序后面都要加上分号";"eg: int a = 10;标识符(变量)的命名规则:a)变量名称不能

2020-11-05 09:32:44 94

原创 shell 脚本之getopts

#!/bin/bashfunction perform_it(){echo "----start----"echo $modeecho $dns_ipecho $domain_nameif [ $mode -eq 1 ];then for i in $addrs;do argv[${index}]=${i} echo ${argv[${index}]} addr=${argv[$

2020-10-26 15:12:05 113

原创 python uuid模块学习

uuid模块:通用唯一标识符(Universally Unique Identifie),UUID可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生成ID的唯一性, 有着固定的大小( 128 bit ). 它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID. UUID可以被用作多种用途, 既可以用来短时间内标记一个对象, 也可以可靠的辨别网络中的持久性对象.python中的uuid模块提供四种算法分别是uuid1.(), uui.

2020-10-15 11:20:04 142

原创 利用bind9搭建dns主从服务器(centos 7)

本次配置:172.16.15.13作为主dns,172.16.15.14作为从dns。根据个人需求可以修改。*注意防火墙问题。*本篇文章未使用dnssec(安全扩展).主dns服务器配置:1.下载安装bind9yum install bind -y这几个主要修改的文件:/etc/named.conf 主配置文件 服务器主要运行参数/etc/named.rfc1912.zones 区域文件,主要指定要解析哪个域名/var/named/xxx.xx 数据文件,用

2020-10-10 17:43:14 1004 5

翻译 大小端的字节序和位序

大小端服务器对字节中位域的影响大字节序机器将位字段从最高有效字节压缩到最低字节。小字节序机器会将位域从最低有效字节打包到最高字节。当我们自己读取十六进制数时,我们从最高有效字节到最低读取它们。因此,读取大字节序的内存转储比读取小字节序的存储更容易。在读取位域的内存转储时,它甚至比读取整数还要困难。考虑: union { unsigned short value; unsigned char byte[2]; struct {

2020-09-09 15:29:01 1127 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除