自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树莓派 ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

1.拔出树莓派的SD卡2.打开VMware Workstation Pro中的ubuntu插入SD卡3.若读不出SD卡:点击虚拟机,设置,硬件,USB控制机、USB兼容性、调成USB1.14.查看SD卡的分区fdisk -l 我的是在sdc25.执行:sudo fsck -f -v -r /dev/sdc2可能不是sdc2,看你的SD卡的分区,也有sdb2之类的,看情况。然后一直y,就可以了。6.把SD卡插回树莓派就可以了。...

2022-03-07 11:49:42 3704

原创 树莓派刷机过程

下载镜像下载SDFormatter安装Win32 Disk Imager修改config.txt文件cmdline.txt文件下载SecureCRTwindows11安全中心无法打开方法连接网络ssh登陆树莓派更换国内的源图形方式登录树莓派

2022-03-06 21:25:29 2499

原创 socket网络编程搭建FTP云盘

1.socket客户端#include <stdio.h>#include <sys/types.h> /* See NOTES */#include <sys/socket.h>#include <stdlib.h>#include <arpa/inet.h>#include <netinet/in.h>#include <string.h>#include "config.h"#inc

2022-03-04 23:12:39 191

原创 socket 网络编程

前言进程间的通信有:管道、消息队列、共享内存、信号、信号量。特点:依赖内核,无法进行多机通信。网络编程:

2022-03-04 09:57:52 277

原创 Linux 多线程编程

Linux 多线程的概念1.线程的创建#include <pthread.h>int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void *), void *restrict arg);// 返回:若成功返回0,否则返回错误编号//pthread_t *restrict tidp:长整型的指针,当pthread_create成功返回时,

2022-03-02 21:45:50 207

原创 结构体大小计算

原则1.结构体成员的偏移量必须是成员大小的整数倍。2.结构体大小必须是所有成员大小的整数倍(数组,结构体成员除外)。意义:虽然浪费空间,但提高了效率。#include<stdio.h>struct s1{ char a;//1 int b;//4 补3 char c; //1 //1+3+4+1=9不是4的倍数补3,大小是12};struct s2{ char a;//1 int b;//4+3 char c[11];//10 //1+3+4+11=19不

2022-02-21 21:53:26 118

原创 结构体的应用

结构体初始化#include<stdio.h>#include<string.h>struct Student{ int score; char name[128]; };int main(){ struct Student num1 = {99,"李四"}; printf("num1中 score = %d\n",num1.score); printf("num1中name = %s\n",num1.name); struct Student

2022-02-21 19:25:59 486

原创 字符串的操作(常用的API)

1、字符串的存储方式:字符串在内存中,除了有效字符外,还会自动在后面补一个’\0’,作为字符串的结束标志。所以不能用sizeof来计算字符串中有效字符的个数,应该使用strlen,它在计算字符串大小时,遇到’\0’后就结束计数。2.定义、初始化#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char *str = "LiXiang"; puts(str);//pr

2022-02-07 16:47:49 845

原创 二级(多级)指针

二级(多级)指针与一级指针相似,写法为:int **p;差别在于二级指针保存的是指针变量的地址。例:#include <stdio.h>int main(){ int data = 100; int *p; p = &data; printf("data的地址是:%p\n",&data); printf("p保存的地址是:%p,内容是:%d\n",p,*p); printf("p的地址是:%p\n",&p); int **p2; p2 =

2022-01-13 21:33:26 183

原创 函数指针与指针函数

指针函数#include <stdio.h>void printWelcome(){ printf("程序启动,欢迎使用\n"); }int changData(int data){ return ++data;}int main(){ void (*p)(); //定义一个函数指针变量 p = printWelcome; //指向函数(需相同类型) (*p)(); //调用 int (*p2)(int data); p

2022-01-12 22:48:12 156

原创 指针——数组指针、指针数组

数组指针#include <stdio.h>int main(){ int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int i; int j; int (*p)[4];//定义一个指针,指向一个数组,让指针偏移的时候,偏移对应数组的大小 p = array; //数组指针等同于二维数组名 for(i=0;i<3;i++){ for(j=0;j<4;j++){ printf("%d

2022-01-12 17:53:22 305

原创 冒泡排序、简单选择排序

冒泡排序#include<stdio.h>void arrayScanf(int array[],int len){ int i; printf("请输入要进行冒泡排序的5个数:\n"); for(i=0;i<len;i++){ scanf("%d",&array[i]); }}void bubbleSort(int array[],int len){ int i; int j; int temp; for(i=0;i<len-1;i+

2022-01-10 20:40:04 390

原创 指针变量应用

1.传整型数#include <stdio.h>void changData(int *pdata1,int *pdata2)//类型需一致,因为不同的类型指向的空间大小不一样 //*标识作用,定义指针变量{ int temp; temp=*pdata1; //*运算作用,取地址内的值 *pdata1=*pdata2; *pdata2=temp;}int main(){ int data1=10; int data2=20; print

2022-01-10 20:31:19 438

原创 数组——形式参数传参、地址的不同表示方式与取地址内容

数组——形式参数传参、地址的不同表示方式与取地址内容

2022-01-09 21:09:06 693

原创 渗透中常用的dos命令

color 改变cmd颜色ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)ipconfig 查看ipipconfig /release 释放ipipconfig /renew 重新获得ipsysteminfo 查看系统信息arp -anet view 查看局域网内其他计算机名称shutdown -s -t 180 -c “你被黑了,系统马上关机”dir 查看目录cd 切换目录start w

2021-10-05 19:59:08 177 1

原创 进程间通信(二)

1.signal 设置信号处理方式#include <signal.h> //所需头文件 typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);//int signum(指定信号编号)//ighandler_t handler(SIG_IGN:忽略参数signum指定的信号;自定义信号函数处理指针)2.验证signal函数#include <s

2021-04-25 21:47:45 163

原创 进程间通信(一)

1.进程间通信(IPC)介绍IPC的方式通常有管道(无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中Socket和Streams支持不同主机上的两个进程IPC。2.pipe 创建无名管道#include <unistd.h> //所需头文件int pipe(int pipefd[2]); //返回值,成功0;失败-1;//当一个管道建立时,它会创建两个文件描述符,fd[0]为读而打开,fd[1]为写而打开。验证pipe函数#inclu

2021-04-24 21:41:15 93

原创 进程的基础(二)

1.exec族函数的作用我们用fork函数创建新的进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序,因为调用exec函数并不创建新进程,所以前后进程的ID没有改变。2.execl#include <unistd.h> //所需头文件int execl(const char *path, const char *arg, ...);//执行成功不返回数值,执行不成功返回-1;//const char *path(可执行

2021-04-19 11:03:39 457

原创 进程的基础(一)

1.进程查询指令ps -aux|grep init //ps -aux(查询所有的进程)、grep init(挑选关于init的进程)top //查看有什么进程(类似于任务管理器)2.getpid() 获取本进程的进程ID号#include <sys/types.h>//需包含的头文件#include <unistd.h>pid_t getpid(void); //返回本进程的进程ID号pid_t getppid(void); //返回父进程的进程I

2021-04-18 21:14:39 73

原创 基础文件编程—LINUX(二)

1.fopen 打开文件在LINUX环境下使用命令符查询 (man fopen)#include <stdio.h>//使用fopen需包含的头文件FILE *fopen(const char *path, const char *mode); /*const char *path(存放文件的地址)const char *mode (打开文件的类型)类型有:"r" //只读打开"w" //只写打开,若文件不存在,创建新文件"a

2021-04-18 19:18:08 163 1

原创 基础文件编程—LINUX(一)

1.open 打开文件在LINUX环境下使用命令符查询 (man 2 open)#include <sys/types.h>//使用open需包含的头文件#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode); /*const char *p

2021-04-10 22:39:53 91

原创 C语言实现学生成绩管理系统

题目:链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。 场景:一个年级,相当于链表A。 该年级5个班,每个班5个人,相当于链表B1–B5。 做一个学生成绩管理系统,学生成绩有语文 数学 英语 功能: 录入成绩 找三科总分的最高分 最低分 算出平均分首先定义两个结构体变量分别是Class类和Student类。struct Class{ struct Student *phead; struct Class *next;};struct Stu

2021-04-08 23:33:49 257

空空如也

空空如也

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

TA关注的人

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