自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA的面向对象

一、封装1、概念:将东西包在一起,然后以新的完整形式呈现出来,将方法和字段一起包装到一个单元中,单元以类的形式实现。(类似于C语言的结构体)信息隐藏,隐藏对象的实现细节,不让外部直接访问到,将数据和方法包装进类中,加上具体实现的隐藏(访问修饰符),共同被称作封装,其结果是一个同时带有特征和行为的数据类型。“定义类,定义其属性、方法的过程称为封装类”。信息隐藏是OOP最重要的功能之一,也是使用访问修饰符的原因。信息隐藏的原因包括:①对模块的任何实现细节所作的更改不会影响使用该模块的代码②防止用

2022-02-10 03:20:50 304 1

原创 实现驱动开发

//pin4driver2.c(底层代码)#include <linux/fs.h> //file_operations声明#include <linux/module.h> //module_init module_exit声明#include <linux/init.h> //__init __exit 宏定义声明#include <linux/device.h> //class devis

2022-02-04 18:03:18 932

原创 Linux内核设备驱动

框架图://pin4driver2.c#include <linux/fs.h> //file_operations声明#include <linux/module.h> //module_init module_exit声明#include <linux/init.h> //__init __exit 宏定义声明#include <linux/device.h> //class devis

2022-02-04 13:41:51 244

原创 shell

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普遍编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。...

2022-02-04 00:41:38 248

原创 树莓派wiringPi库

wiringPi(特定平台,特定功能接口库)是一个树莓派IO控制库,为开发者提供了丰富的接口:GPIO控制,中断,多线程(用linux的原生线程会比较好)等等。查看是否安装了wiringPi库:硬件初始化函数:int wiringPiSetup(void)//返回执行状态,-1表示失败;当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi引脚编号表。引脚的编号为0~16需要root权限int wiringPiSetupGpio(void)//返回执行状态,-1表示失败;当使用这个函数初始化

2022-02-01 21:51:33 1334

原创 Linux网络编程实战

*:在当前目录r:递归查找n:找出来显示行号i:不区分大小写//serverpro.c#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>//#include <linux/in.h>#include <arpa/inet.h>#include <netinet/in.h>#include <stdlib.h>#include.

2022-01-28 21:20:42 208

原创 Linux网络编程

Socket服务器和客户端的开发步骤:

2022-01-28 15:54:04 1379

原创 Linux线程

线程与进程典型的UNIX/Linux进程可以看成只有一个控制线程:一个线程在同一时刻只能做一件事情,有了多个控制线程后,在程序设计是可以把进程设计成在同一时刻做不止一件事情,每个线程各自处理独立的任务。...

2022-01-28 14:02:39 1748

原创 Linux进程间通信(IPC)

进程间通信:进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中Socket和Streams支持不同主机上的两个进程IPC。一、管道管道,通常指无名管道,是UNIX系统IPC最古老的形式。1、特点:①是半双工的(即数据只能在一个方向上流动),具有固定的读端和写端。②只能用于具有亲缘关系的进程之间的通信(父子进程或者兄弟进程之间

2022-01-14 19:41:55 628

原创 popen函数

popen比system在应用中的好处:可以获取运行的输出结果NAME popen, pclose - pipe stream to or from a processSYNOPSIS #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream);参数说明:command:是一个指向以NULL结

2022-01-07 16:26:15 1061

原创 system函数

NAME system - execute a shell commandSYNOPSIS #include <stdlib.h> int system(const char *command);//运行程序的方法./a.outsh -c ./a.out//Linux中的system源码(可以理解为封装的execl函数)int system(const char * cmdstring){ pid_t pid;

2022-01-07 15:34:00 994

原创 exec族函数配合fork使用

实现功能当父进程检测到输入为1的时候创建子进程把配置文件的字段值改掉//changeData.c#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc,c

2022-01-07 14:56:41 487

原创 exec族函数

功能:在调用进程内部执行一个可执行文件。可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。函数族:exec函数族分别是:exect,execlp,execle,execv,execvp,execvpe。函数原型:#include <unistd.h>extern char **environ;int execl(const char *path,const char *arg,...);//常用int execlp(const char *file,con

2022-01-06 23:07:32 710

原创 Linux中进程的退出

正常退出1、Main函数调用return。2、进程调用exit(),标准c库3、进程调用_exit()或者_Exit(),属于系统调用4、进程最后一个线程返回5、最后一个线程调用pthread_exit异常退出1、调用abort2、当进程收到某些信号时,比如ctrl+c3、最后一个线程对取消(cancellation)请求做出响应...

2022-01-06 11:22:48 1606

原创 fork、vfork函数及父进程与子进程

进程A创建了进程B,则称进程A为父进程,进程B为子进程#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ pid_t pid; printf("father: id=%d\n",getpid()); pid = fork(); if (pid>0){ printf(

2022-01-06 09:40:54 779

原创 C程序的程序空间的分配

2022-01-05 16:51:31 159

原创 Linux中把结构体写入文件

#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>struct Test{ int a; char c;};int main(int argc,cha

2022-01-05 15:46:46 592

原创 Liunx中修改配置文件

执行前文件test1的内容#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc,char **argv){ int fdSrc;

2022-01-05 12:54:29 175

原创 Linux中的mycp

#include <stdio.h>#include <unistd.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int main(int argc,char **argv){ int fdSrc; int fdDes;

2022-01-05 11:29:01 309

原创 二维数组小知识

#include <stdio.h>int main(){ int arr[3][4] = {{11,22,33,44},{51,52,53,54},{61,62,63.64}}; printf("arr is father address: %p,excursion one is %p\n",arr,arr+1); printf("arr[0] is child address: %p,excursion one is %p\n",arr

2022-01-03 13:32:46 223

原创 简单选择排序算法

#include <stdio.h>int main(){ int array[] = {38,87,45,26,112,345,1,4,6,6,9,26}; int i; int j; int tmp; int len = sizeof(array)/sizeof(array[0]); for(i=0;i<len-1;i++){ for(j=i+1;j&

2022-01-02 14:24:00 263

原创 冒泡排序算法

冒泡排序#include <stdio.h>int main(){ int array[] = {38,87,45,26,112,345,1,4,6,6,9,26}; int i; int j; int tmp; int len = sizeof(array)/sizeof(array[0]); for(i=0;i<len-1;i++){ for(j=0;

2022-01-02 13:39:37 283

原创 Ncurse贪吃蛇小游戏

游戏代码#include <stdlib.h>#include <curses.h>#define UP 1#define DOWN -1#define LEFT 2#define RIGHT -2 struct snake{ int hang; int lie; struct snake *next;};struct snake food;struct snake *head = NULL;struct snake

2021-04-04 20:32:18 132 1

原创 关于C语言中结构体大小的计算

在C语言中结构体运用的十分广泛,然而结构体的大小并不是简单的把结构体里面各个成员的大小进行相加,而是应该考虑到结构体地址对齐对结构体大小的影响。结构体的对齐方式确实很浪费时间,可是按照计算机的访问机制,这种对齐方式大大提升了计算机的访问效率。结构体大小的计算方法:从结构体的第一个成员向下开始计算,并遵循以下原则①前面所有成员所占地址空间的大小必须是其后一个成员占地址空间大小的整数倍。(0是任何数的整数倍,或第一个成员除外)②结构体的大小必须是结构体里面各个成员(数组除外,结构中包含结构体,且被包含

2021-04-03 00:04:44 574

原创 关于C语言链表和结构体的小测试

一、测试题如下:链表A,每个节点存放一个新的链表B1,B2,B3,B4,B5的头结点。场景:一个年级,相当链表A,该年级5个班,每个班5个人,相当于链表B1~B5要求:做一个学生成绩管理系统(学生成绩有语文、数学、英语)功能:录入成绩,找最三科总分的最高分,最低分,算出平均分二、参考程序如下#include <stdio.h>#include <stdlib.h>#include <unistd.h>struct Great{ struct Stu

2021-04-01 22:43:42 87

空空如也

空空如也

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

TA关注的人

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