- 博客(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
4014
原创 树莓派刷机过程
下载镜像下载SDFormatter安装Win32 Disk Imager修改config.txt文件cmdline.txt文件下载SecureCRTwindows11安全中心无法打开方法连接网络ssh登陆树莓派更换国内的源图形方式登录树莓派
2022-03-06 21:25:29
2665
原创 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
226
原创 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
257
原创 结构体大小计算
原则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
173
原创 结构体的应用
结构体初始化#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
600
原创 字符串的操作(常用的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
899
原创 二级(多级)指针
二级(多级)指针与一级指针相似,写法为: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
229
原创 函数指针与指针函数
指针函数#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
179
原创 指针——数组指针、指针数组
数组指针#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
329
原创 冒泡排序、简单选择排序
冒泡排序#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
415
原创 指针变量应用
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
494
原创 渗透中常用的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
257
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
221
原创 进程间通信(一)
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
147
原创 进程的基础(二)
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
525
原创 进程的基础(一)
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
108
原创 基础文件编程—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
249
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
121
原创 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
277
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人