- 博客(26)
- 收藏
- 关注
原创 树莓派——超声波
是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
2022-12-20 16:48:19
221
原创 linux——线程
而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。据统计,总的说来,一个进程的开销大约是一个线程开销的30倍左右,当然,在具体的系统上,这个数据可能会有较大的区别。是线程间方便的通信机制。线程有自己的堆栈和局部变量,但线程没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
2022-11-28 21:45:33
155
原创 linux——信号(signal)
比如,我在后台运行了一个 top 工具,通过 ps 命令可以查看他的 PID,通过 kill 9 来发送了一个终止进程的信号来结束了 top 进程。按照我们之前思路来看,可以发送的信号类型是多种多样的,每种信号的处理可能不一定相同,那么,我们肯定需要知道到底发生了什么信号。另外,虽然我们知道了系统发出来的是哪种信号,但是还有一点也很重要,就是系统产生了一个信号,是由谁来响应?来查看信号的名字以及序号,信号是从1开始编号的,不存在0号信号。了解了信号的概述,那么,信号是如何来使用呢?具体的信号名称可以使用。
2022-11-28 17:38:52
1015
原创 linux——文件光标移动(lseek)
SEEK_SET: 光标在文件的头位置。off_t offset : 偏移值。SEEK_END:光标文件的尾巴位置。SEEK_CUR:当前光标位置。
2022-11-21 18:36:49
522
原创 Linux——文件写入(write)操作
const void *buf:一个无类型指针作为写入的缓冲区。size_t count : 写入文件的大小。将缓冲区里面内容写入(大小为count)到fd中。int fd:描述符。
2022-11-21 15:43:38
2545
原创 linux——文件编程(打开open及创建)
fd返回值为3代表打开文件成功,-1代表打开文件失败。3.执行 : x 1。1.可读 : r 4。2.可写 : w 2。0600代表:4+2即可读可写。
2022-11-21 15:15:15
1301
原创 c语言——初识结构体
printf("学号%d,年龄:%d,分数:%1f,名字:%s,地址:%s\n",stu2.num,stu2.age,stu2.score,stu2.name,stu2.addr);printf("学号%d,年龄:%d,分数:%1f,名字:%s,地址:%s\n",stu1.num,stu1.age,stu1.score,stu1.name,stu1.addr);struct Student stu2={2,"张三",'g',17,98.5,"北京"};//点运算符来访问结构体中的成员变量(域)。
2022-11-18 10:42:43
262
原创 c语言——字符串的比较函数(strcmp,strncmp),几种字符常见的API
功能是把 str1 和 str2 进行比较,最多比较前 n 个字节,若str1与str2的前n个字符相同,则返回0;若s1大于s2,则返回大于0的值;分解字符串 str 为一组字符串,delim 为分隔符,特别要注意分割处理后原字符串 str 会变,原字符串的改动是切分符原位置均更改为 '\0'。返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL;若str1=str2,则返回零;若str1
2022-11-18 10:08:25
866
原创 C语言——strcat(拼接)
函数原型: char *strcat(char *dest, const char *src);把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。int main(){ char str[128]="just now"; char *p ="handsome"; char *p2; p2=strcat(st
2022-11-17 20:30:58
164
原创 C语言——malloc动态开辟内存空间,strcpy(拷贝),free(释放内容),memset(清除空间)
/ 在p的基础上给扩容newlen的大小。printf("扩容地址:%x\n",p);//将前面p中扩容的12个字节内存,全部清0。//开辟内存给p有了具体的内存指向。//拷贝,将后面的内容拷贝到前面。
2022-11-17 19:48:45
450
原创 c语言——strlen和strlen的的区别
/p是一个char*,sizeof来计算的时候,得出计算机用多少字节来表示一个地址。//计算有效字符的大小。//计算整个数组的大小。
2022-11-17 18:56:20
191
原创 c语言——多维数组和指针
printf("arr[0]是子数组地址:%p,偏移1后是%p\n",*(arr+0),*(arr+0)+1);printf("arr[0]是子数组地址:%p,偏移1后是%p\n",arr[0],arr[0]+1);printf("arr是父亲地址: %p,偏移1后是%p\n",arr,arr+1);a表示父数组的地址,a[0],a*表示字数组的地址,同时a[0]也代表子数组名。a[0]+1第0行第一列的地址,是地址的意思 ==*(a+0)+1;而第0个子数组的第1个元素表示方式是a[0][1],不要乱。
2022-11-16 20:25:38
211
原创 c语言——指针和数组名的见怪不怪
/ 在操作系统中用8个字节表示一个地址(指针)printf("sizeof pointer is %d\n",sizeof(int*));// 在操作系统中用8个字节表示一个地址(指针)printf("sizeof arr is %d\n",sizeof(p));// 在操作系统中用8个字节表示一个地址(指针)printf("sizeof arr is %d\n",sizeof(arr));
2022-11-16 17:17:52
195
原创 C语言——break和continue
printf("每个人的捐款平均数据:%f\n",(float)totalMoney/numOfPerson);} // 例如89不满足if循环则停止,进入90继续循环。// 若不满足if条件,则停止此次小循环,进入下一个小循环。printf("总捐款人数是:%d\n",numOfPerson);printf("每个人输入捐款的数目:\n");用continue提前结束本次循环。用break提前结束循环。
2022-11-15 09:34:30
621
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人