自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 git checkout -B

git checkout -B

2022-07-09 17:54:58 6152 1

原创 shell 统计文件的行数

wc命令1 cat nowcoder.txt | wc -l2 wc -l < nowcoder.txt3 wc -l nowcoder.txt | gawk ‘{print $1}’grep命令grep -n “” nowcoder.txt | tail -n1 | gawk -F: ‘{print $1}’sed命令sed -n ‘$=’ nowcoder.txtgawk命令gawk ‘{print NR}’ nowcoder.txt | tail -n1gawk ‘END{p

2022-03-19 16:48:43 2875 1

原创 Uboot常用命令使用

Uboot常用命令使用

2022-03-01 22:12:04 102

原创 c++ 合成的移动操作

与拷贝操作不同,编译器根本不会为某些类合成移动操作。特别是,如果一个类定义了自己的拷贝构造函数、拷贝赋值运算符或者析构函数,编译器就不会为它合成移动构造函数和移动赋值运算符了。...

2022-01-17 16:05:32 293

原创 c++ 拷贝构造函数

例1:#include <iostream>using namespace std;class numbered{private: static int seq;public: numbered(){mysn = seq++;} int mysn;};int numbered::seq = 0;void f(numbered s){ cout << s.mysn << endl;}int main(){

2021-12-17 22:35:50 73

原创 c++ 拷贝控制

例子:#include <iostream>#include <vector>using namespace std;struct X{ X(){cout << "construct func X()" << endl;} X(const X&){cout << "construct func X(const X&)" << endl;} X& operator= (const

2021-12-17 20:37:30 807

原创 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?解决

重启虚拟机

2021-11-24 09:44:13 490

原创 c++ 迭代器 front_inserter back_inserter inserter

/************************************************************************* > File Name: test02.cpp > Author: laiqingcai > Mail: 837620452@qq.com > Created Time: 2021年11月21日 星期日 15时27分47秒 ***************************************

2021-11-21 15:37:07 520

原创 C++ string的size()和length()函数没有区别(转)

C++标准库中的string中两者的源代码如下:size_type __CLR_OR_THIS_CALL length() const{ // return length of sequencereturn (_Mysize);}size_type __CLR_OR_THIS_CALL size() const{ // return length of sequencereturn (_Mysize);}所以两者没有区别。 

2021-11-21 11:21:20 619

原创 c++ placeholders/bind函数

bind函数使用/************************************************************************* > File Name: test.cpp > Author: laiqingcai > Mail: 837620452@qq.com > Created Time: 2021年11月20日 星期六 22时53分13秒 ********************************

2021-11-21 11:07:53 683

原创 pthread_mutex_init & 互斥锁pthread_mutex_t的使用(转)

互斥锁创建有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下:pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;在LinuxThreads实现中,pthread_mutex_t是一个结构,而PTHREAD_MUTEX_INITIALIZER则是一个结构常量。动态方式是采用pthread_mutex_init()函数来初始化互斥锁,API定义如下:int pt.

2021-11-16 14:32:55 379

原创 semaphorex信号量

/************************************************************************* > File Name: mutex.c > Author: laiqingcai > Mail: 837620452@qq.com > Created Time: 2021年11月12日 星期五 20时56分28秒 ******************************************

2021-11-13 14:09:14 685

原创 socket实现简单的服务器客户端交互图

2021-06-26 17:49:55 417

原创 c++之逗号运算符

对于逗号运算符来说,先对逗号左边的表达式进行求值,然后将所求的值丢弃。其实,逗号运算符的真正的结果是逗号右边的表达式的值,用于进行条件判断。#include <vector>#include <iostream>int main(){ int sum = 0, val = 1; while (sum += val, val < 10) ++val; std::cout << sum << std::endl; return 0;

2021-01-08 22:26:25 239

原创 ubuntu samba共享文件不可写问题记录

更改配置文件sudo vim /etc/smaba/smb.conf[share]comment = sharebrowseable = yespath = /home/“usrname”/sharewritable = yesvalid users = “usrname”服务重启sudo service smbd restart更改后可写。

2020-12-25 20:46:46 858

原创 快速傅里叶变换之C语言实现

vr=fr[it];vi=fi[it];fr[it]=vr+fr[it+1];fi[it]=vi+fi[it+1];fr[it+1]=vr-fr[it+1];fi[it+1]=vi-fi[it+1];}m=n/2;nv=2;for (l0=k-2; l0>=0; l0–){m=m/2;nv=2nv;for (it=0; it<=(m-1)nv; it=it+nv)for (j=0; j<=(nv/2)-1; j++){p=pr[mj]fr[it+j+nv/2

2020-12-02 09:16:09 482

原创 C之数组名

只有在以下两种情况下,数组名并不用指针常量来表示:数组名作为sizeof操作符数组名作为单目运算符&的操作数sizeof返回整个数组的长度,而不是指向数组的指针的长度。取一个数组名的地址所产生的是一个指向数组的指针,而不是一个指向某个数组常量值的指针。int a[10];int *c;int i = sizeof(a);c = &a[0];i = 40。表达式&a[0]是一个指向数组第一个元素的指针。...

2020-12-01 20:35:51 105

转载 C之函数指针 回调函数 带参回调函数

函数指针函数指针是指向函数的指针变量。通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。函数指针可以像一般函数一样,用于调用函数、传递参数。函数指针变量的声明:typedef int (*fun_ptr)(int,int); // 声明一个指向同样参数、返回值的函数指针类型#include <stdio.h> int max(int x, int y){ return x > y ? x : y;} int main(void

2020-11-30 19:34:55 1151

转载 c++之类访问修饰符

公有(public)成员公有成员在程序中类的外部是可访问的。您可以不使用任何成员函数来设置和获取公有变量的值。私有(private)成员成员和类的默认访问修饰符是 private。私有成员变量或函数在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员。默认情况下,类的所有成员都是私有的。例如在下面的类中,width 是一个私有成员,这意味着,如果您没有使用任何访问修饰符,类的成员将被假定为私有成员。实际操作中,我们一般会在私有区域定义数据,在公有区域定义相关的函数,以便在类

2020-11-28 22:45:13 173

原创 libevent入门demo

#include <event.h>#include <time.h>#include <signal.h>struct event *ev;struct timeval tv;void timer_cb(int fd, short event, void *arg) //callback函数{ printf("timer_cb\n"); event_add(ev, &tv); //重新注册事件}int m

2020-11-25 15:13:06 306

原创 C语言之static关键字使用总结

static关键字总结: 1、当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,但标识符的存储类型和作用域不受影响。用这种方式声明的函数或变量只能在声明它们的源文件中访问; 2、当它用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量,但变量的链接属性和作用域不受影响。用这种方式声明的变量在程序执行之前创建,并在程序的整个执行期间一直存在,而不是每次在代码...

2020-11-23 16:08:49 73

原创 c++之传引用参数

case 1#include <iostream>void changeValue(int&);int main(){ int val = 1; std::cout << val << std::endl; int &v = val; changeValue(v); std::cout << val << std::endl;}void changeValue(int &val){ val =

2020-11-22 15:51:03 626

原创 Makefile之删除目录中全部执行文件

CFILES := $(wildcard *.c)EXES := $(patsubst %.c, %, $(CFILES))all: echo $(EXES)clean: rm -f $(EXES).PHONY:clean all

2020-11-21 17:39:23 2341

原创 apue之信号设置和sigprocmask实例

#include <stdio.h>#include <unistd.h>#include <signal.h>void handler(int signo){ printf("Caught SIGINT\n"); //SIGINT信号处理函数 if (signal(SIGINT, SIG_DFL) == SIG_ERR) printf("can't reset SIGQUIT"); return;} int main()

2020-11-21 16:09:57 93

原创 C语言 指针做函数参数,按值传递的参数传递方式

修改指针的指向地址#include <stdio.h>#include <stdlib.h>#include <string.h>void ptrasargs(char *ptr){ ptr = NULL; //*ptr = 'b';}int main(){ char ptr = 'a'; printf("%c\n", ptr); ptrasargs(&ptr); printf("%c\n", ptr); return 0;}输出

2020-11-19 14:55:47 303

原创 C语言 字符数组转字符串

#include <stdio.h>#include <stdlib.h>#include <string.h>void catostr(char* arr, int len, char* string){ char *tmp = (char *)malloc((sizeof(arr) + 1)*sizeof(char)); for (int i = 0; i < len; i++) { tmp[i] = arr[i]; } tmp[sizeo

2020-11-19 11:05:45 6650

原创 gdb简单调试

gcc -g -o gdbtest.debug gdbtest.c输入"gdb"命令, 进入gdb导入文件:file ./gdbtest.debug查看文件:list加入断点:break 6(行号)查看断点:info breakrun,运行至第一个断点step,程序运行一步print i, 查看i的值q,退出gdb...

2020-11-18 09:48:13 56

原创 共享内存实例中出现段错误

问题程序中排除了其他问题,仍报错,段错误。解决方法运行程序时,加上sudo。目的是为了清空环境中的共享内存。

2020-11-17 19:02:54 493

原创 Markdown基础

Markdown标题有一下两种标记标题的格式。1、使用=和-标记一级和二级标题例:一级标题===二级标题—注:markdown转义符 “\”2、使用#号标记使用#号可表示1-6级标题,一级标题对应一个#,二级标题对应两个#,以此类推。例:# 一级标题## 二级标题…# 六级标题Markdown段落Markdown 段落没有特殊的格式,直接编写文字就好,段落的换行是使用两个以上空格加上回车。Markdown字体Markdown 可以使用以下几种字体:*斜体文本*_斜体

2020-11-17 09:10:31 123

空空如也

空空如也

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

TA关注的人

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